Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


DirectX3D prestanda i C++ vs C#

Postades av 2005-03-09 19:21:06 - Per Kürcman, i forum spel/grafik, Tråden har 10 Kommentarer och lästs av 1235 personer

Oi!

Sitter och funderar på att ägna lite tid åt att lära mig lite objekt orientering, och samtidigt leka lite med DirectX, med förhoppning om att leka lite med 3D objekt i framtiden.

Min fråga just nu var hur stora prestanda skillnadert det är i C++ vs C#, när det gäller DirectX3D.

Jag har knappat en del C innan, och pekar problem har bidragit till "en del" buggar... Enligt vad jag har förstått så har man tagit bort pekarna i C#?

Mvh Per


Svara

Sv: DirectX3D prestanda i C++ vs C#

Postades av 2005-03-09 20:07:27 - Martin Adrian

I C++ använder man sällan pekare utan man använder referenser och de fungerar ju på samma sätt i c#, vb mfl. (I C finns det inte referenser så där använder man pekare vilket ofta ställer till det precis som du säger). Det är ett bra tag sedan jag behövde använda en pekare i c++.

När det gäller prestanda spelar språket ingen roll. DirectX funktionerna tar lika lång tid oavsett vilket språk de anropas från så det beror mera på hur mycket logik du skall skriva själv.

VB.NET borde väl vara ett lika gott alternativ som c# för managed directX.

Du lär nog inte lära dig så mycket om objektorientering med directx men det kan väl vara kul ändå.


Svara

Sv: DirectX3D prestanda i C++ vs C#

Postades av 2005-03-10 06:30:25 - Johan Lindfors

Om du tittar på de exempel som följer med DirectX 9 SDK så är C++ versionerna 3-5% snabbare än C# versionerna. C# versionerna har i snitt 30% mindre kod.

Med andra ord, med dagens hårdvara som ofta klämmer ut >100 fps i spel så tror jag inte att 3-5% spelar någon större roll, men att däremot kunna leverera produkten betydligt tidigare kan nog spela mycket roll.

Mvh


Svara

Sv:DirectX3D prestanda i C++ vs C#

Postades av 2005-03-10 09:23:21 - Per Persson

Att säga att man "sällan" använder pekare i C++ är att förvilla. Pekare används nästan lika mycket i C++ som i C.


Svara

Sv: DirectX3D prestanda i C++ vs C#

Postades av 2005-03-10 13:15:00 - Martin Adrian

>Att säga att man "sällan" använder pekare i C++ är att förvilla. Pekare används nästan lika mycket i
>C++ som i C.

Vad använder man pekare till i C++? Enda jag kan komma på är när man anropar gamla C funktioner eller WindowsAPI men då handler det mest om att sätta "&" framför en variabel.

Möjligtvis kan man använda det när man gör "new" men med STL är det sällan man behöver göra det.


Svara

Sv:DirectX3D prestanda i C++ vs C#

Postades av 2005-03-10 22:29:53 - Per Persson

Nästan varje gång man arbetar med objekt använder man pekare. Man kan ju inte lägga alla objekt på stacken. Gjorde man det skulle man inte kunna returnera objekt från funktioner.


Svara

Sv: DirectX3D prestanda i C++ vs C#

Postades av 2005-03-11 08:34:26 - Martin Adrian

>Gjorde man det skulle man inte kunna returnera objekt från funktioner.

<code=c++>
myobjecttype functionreturningobject() {
myobjecttype objectonstack;
...
return objectonstack;
}

main() {
myobjecttype variableonstack = functionreturningobject();
..
}
</code>


Svara

Sv:DirectX3D prestanda i C++ vs C#

Postades av 2005-03-11 10:19:39 - Per Persson

Det där returnerar inte det skapade objektet utan en kopia av det. Och att kopiera objekt är något som bör undvikas.


Svara

Sv: DirectX3D prestanda i C++ vs C#

Postades av 2005-03-11 10:52:58 - Martin Adrian

>Det där returnerar inte det skapade objektet utan en kopia av det.
Hur vet du det? De flesta kompilatorer använder väl NRVO vilket innebär att objektet inte kopieras.

>Och att kopiera objekt är något som bör undvikas.
Jodå, och man skall undvika temporära objekt mm men sån optimering får väl räknas som ganska avancerad c++ och knappast något som en nybörjare behöver bry sig om.

Man kan skriva funktionen så här om man vill vara säker på att objektet inte kopieras:
<code=c++>
void getobject(myobjettype& object) {
object.x = ...
}

main() {
myobjecttype variableonstack;
getobject(varibleonstack);
..
}
</code>
Fortfarande inga pekare (om du inte menar att referenser är pekare men i så fall använder man ju pekare lika ofta i VB)


Svara

Sv:DirectX3D prestanda i C++ vs C#

Postades av 2005-03-11 13:47:12 - Per Persson

Hur långt klarar man sig med objekt på stacken?


Svara

Sv: DirectX3D prestanda i C++ vs C#

Postades av 2005-03-11 14:06:31 - Martin Adrian

>Hur långt klarar man sig med objekt på stacken?

Så länge de behövs :-)

Jag tycker det är dålig programmering om man har funktioner som skapar objekt som anroparen förväntas ta hand om. Om en funktion tillverkar något objekt som skall överleva funktionsanropet bör den returnera objektet på ett eller annat sätt. (eller också spara det i någon klassvariabel)


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 763
27 959
271 761
457
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies