Ist C++ schneller als C#?

3 Antworten

Nein - zumindest nicht einfach so.
Vielleicht gibt's kleine Unterschiede, aber die bewegen sich entweder in der Messtoleranz oder sind außerhalb jedes relevanten Bereichs.

Die allermeisten Performance-Probleme sind Programmier-Fehler oder tatsächlich aufwändige Aufgaben, wie z.B. riesige Datenmengen umstrukturieren. Letzteres sollte man - wenn es wirklich ein Problem ist - aber auf der Datenbank laufen lassen und dann ist egal, welche Sprache Du nutzt - sie alle warten nur.

C++ kann sehr spezifisch optimiert werden, wenn jemand weiß, was er tu und entsprechend optimiert, hinkt C# hinterher. Wenn besagter Jemand aber nicht weiß, was er tut, kann er sich massive Probleme einhandeln - vermutlich mehr als bei C#. Außerdem sind diese Optimierungen dann eben spezifisch, auf einer anderen Hardware-Basis kann das plötzlich ganz anders aussehen.
Das gilt natürlich auch für C#, auch da kann man (seit C# 7) immer besser im Detail optimieren, aber auch da kann das ganz gewaltig nach hinten los gehen - nur nicht so schlimm, wie bei C++.

Entscheidend ist aber sowieso, wie gut/schnell man mit C++/C# entwickeln kann, denn das nimmt den Großteil der Zeit ein und ohne Feature kein Performance-Problem, das man angehen könnte/müsste.
Das ist auch der Grund, warum mehr Business-Anwendungen in C# (oder Anderen) entwickelt werden - sie sind schlicht einfacher und die Optimierungsmöglichkeiten schlicht unnötig.

Aber selbst wenn ich die Optimierungsmöglichkeit brauche, würde ich auf C# setzen. Den kritischen Pfad würde ich dann möglich abkapseln und in C++ entwickeln - C# ruft die entsprechenden Methoden dann auf.

Woher ich das weiß:Berufserfahrung

Die Antwort ist das es in 99% der Anwendungsfälle egal ist welche Sprache schneller ist. C++ hat einen Vorteil in dem Bereich, ist aber egal. Wo soll hier ein Performance Problem bestehen bei der Ausgabe von Zahlen?

Wenn du trotzdem, warum auch immer, Benchmarks für verschiedene Sprachen suchst kannst du mal hier nach Vergleichen schauen https://benchmarksgame-team.pages.debian.net/benchmarksgame/

Programmiersprachen benchmarken ist aber nicht so einfach, insbesondere wenn man keinen spezifischen Anwendungsfall zum testen hat.

Generell gilt, der meiste Code ist langsam weil er nicht optimiert geschrieben wurde. Das man zu Problemen wegen der Sprache kommt ist eher selten. Und Optimierungen da wo man keine braucht sind meistens einfach nur verschwendete Zeit.

Woher ich das weiß:Berufserfahrung – Software Entwickler / Devops
TimeTravel3 
Fragesteller
 16.11.2021, 16:19

klar, das eine mini rechnung nicht viel ausmacht, doch ich wollte einfach mal sehen was dabei schneller ist. danke für die antwort!

0

Dieser einfach Schleifentest wäre vermutlich ziemlich gleich schnell. Tatsächlich wäre hier die Ausgabe der Zahl für die Geschwindigkeit ausschlaggebend. Würdest Du die rauslassen, dann würde bei beiden ziemlich derselbe Maschinencode entstehen.

TimeTravel3 
Fragesteller
 16.11.2021, 16:19

klar, das eine mini rechnung nicht viel ausmacht, doch ich wollte einfach mal sehen was dabei schneller ist. danke für die antwort!

0