Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

19.11.2014, 13:56

Engines und Programmiersprachen

Ich komm mal gleich zur Sache.
Wird die Performens schlechter wenn bei einer Engine C# statt C++ verwendet.

Ich meine C++ ist ja bei einer normalen IDE schneller als C#.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

2

19.11.2014, 14:19

Ob Engine oder nicht sagt eigentlich erst mal nicht viel aus. Es kommt ja stark darauf an was die Engine am Ende tut. Was jetzt die IDE angeht, so ist das auch so eine Sache. Sprachen sind teilweise so unterschiedlich da finde ich es schon nicht unbedingt sinnvoll Geschwindigkeiten zu vergleichen. Selbst wenn du verschiedene Compiler für die selbe Sprache vergleichen möchtest wirst du feststellen dass der eine vielleicht an Stelle A und B besser optimiert als der andere Compiler, wobei der andere Compiler an Stelle C und D besser optimiert. Man sollte sich da eher bewusst sein was nun schneller und was langsamer läuft.
Was die Unterscheidung verschiedener Sprachen angeht. Hier muss man aufpassen welchen Ansatz die Sprache verfolgt. Vergleiche ich eine funktionale Sprache mit einem Assembler Sprachsatz so kann ich vielleicht in beiden ein Programm schreiben welches die selbe Aufgabe erfüllt, Zeiten vergleichen ist aber so eine Sache. Mal ein krasses Beispiel. Quicksort in Haskell zum Beispiel zu schreiben geht ziemlich einfach und ist schnell erledigt. In Assembler ist es um einiges schwerer und ich habe viel mehr Möglichkeiten Fehler zu machen. Wenn ich es richtig mache wird das Programm in Assembler vermutlich schneller sein als das in Haskell. Da ich aber viel mehr falsch machen kann gibt es auch viel mehr Möglichkeiten schlechten und vielleicht langsamen Code zu erzeugen.
C++ und C# gehen jetzt natürlich nicht so extrem weit auseinander wie Haskell und Assemblercode. C# ist an sich langsamer, ja. Das liegt zum einen auch am JIT Compiler der Laufzeitumbegung. Man muss aber erst mal an den Punkt kommen wo dieser Geschwindigkeitsunterschied von Belang ist. Was viele bei C# und allgemein .Net stört ist der Garbage Collector. Ich persönlich bin mittlerweile riesen Freund davon. Viele stellen sich das mit den unterschiedlichen Geschwindigkeiten nicht richtig vor. Es ist nicht so dass dein Programm mit C++ perfekt läuft und sobald du C# für ein Spiel benutzt hast du nur noch eine Diashow. Auch solche Sprachen sind schnell genug.
Wie gesagt ich benutze C# nun seit etwa (ziemlich genau sogar) 6 Jahren und habe noch nie Probleme gehabt was die Geschwindigkeit angeht.
Bei C++ gibt es jedoch recht viel zu beachten. Meiner Meinung nach ist es hier viel viel einfacher langsamen Code zu schreiben. Wenn man nicht richtig aufpasst werden Objekte an der falschen Stelle kopiert und so Späße. Mit genug Erfahrung wird dir das vermutlich nicht mehr passieren aber an diese Stelle muss man erst mal kommen.

Allgemein finde ich. Wähle zwischen den beiden Sprachen nicht wegen ihrer Geschwindigkeit (oder allgemein nicht zwischen Sprachen aus diesem Grund), es sei denn es ist wirklich notwendig. Wähle zwischen Sprachen lieber wegen ihrer Features und den Anforderungen die du für deine Software oder dein Spiel hast.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

3

19.11.2014, 15:41

Danke Schorsch

Werbeanzeige