Programmiersprachen Schnelligkeit?

5 Antworten

Wie bei Allem sollte man abwägen an welcher Stelle "Performance" nötig ist.

Wenn ich irgendwelche Arbeiten am Dateisystem zu erledigen habe, wäre es völliger Blödsinn VS zu starten und ein C++ Projekt aufzusetzen.

Das erledige ich mit einer Zeile Powershell... Dann liegt die Performance bereits im Schreiben des "Programms".

Wenn man nicht gerade 5 Mrd. Stellen von PI berechnen (oder irgendwelche super zeitkritische Sachen erledigen) muss, ist C# oder Java ein akzeptabler Kompromiss.

Wie beim obigen Exttrembeispiel mit Powershell, sollte man neben der "Nettoperformace" auch den für die Entwicklung nötigen Zeitaufwand im Auge behalten . Es macht wenig Sinn ein Paar Stunden an einer C Lösung herumzubasteln, wenn C# bereits eine fertige Klasse dafür anbietet.

...und natürlich kann man zeitkritische Routinen als nativen (unmanaged) Code mit C++ oder gar Assembler programmieren und mit C# aufrufen.

Und auch folgendes geht...

...da spielt es kaum noch eine Rolle, ob das "Rahmenprogramm" in C++ oder C# geschrieben wurde

Rust könnte man wohl am ehesten als Formel1wagen mit Airbags und Getränkehalter und Kindersitz bezeichnen.

Rust zu lernen ist durchaus erwägenswert. Dabei denke ich nicht unbedingt an Performance - die ist bei Rust jedenfalls nicht schlecht - sondern an die in Rust implementierte Form der Speicherverwaltung, die gegenüber dem, was wir seit fast 50 Jahren in C haben, doch wesentlich bessere Sicherheitseigenschaften bietet.

Woher ich das weiß:Berufserfahrung – Berufstätigkeit als Software-Entwickler
Ich weiß das man das nicht so vergleichen kann

Richtig, kann man nicht ;)

Also wenn man die sehr allgemeine grundlegende Ausführungsgeschwindigkeit betrachtet, sollten C und C++ etwa gleichauf sein, da beide ungefähr das gleiche Ergebnis liefern. C# ist etwas langsamer, weil eine Runtime dazwischen hängt, die noch mehr tut. Wo Rust liegt, weiß ich nicht.

Die mit Abstand meisten Performanceprobleme sind aber auf falsche/unkluge Nutzung von Sprach-Funktionen oder Frameworks zurückzuführen. C++ wird gerne für High-Performance-Anwendungen genutzt, es passiert aber leicht, dass man es falsch nutzt und sich dabei mehr Performance-Probleme schafft, als man löst. C# ist dagegen um einiges einfacher, was weniger solche Fallstricke bietet, dafür kann man aber nicht so kleinteilig optimieren, wie mit C++ - sollte aber für die wenigsten Projekte wirklich relevant sein.

Wenn es wirklich um maximale Performance geht, man aber die zusätzlichen Risiken von C/C++ nicht haben möchte, würde ich C# und C++ kombinieren. C# als "Haupt-Sprache" für die eigentliche Anwendung und der Hot Path (z.B. aufwändige mathematische Berechnungen) in C++, da man C++-Bibliotheken recht einfach aus C# heraus aufrufen kann.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

Wenn es wirklich drauf ankommt, das letzte Fitzelchen Geschwindigkeit rauszuholen, dürfte C# wahrscheinlich ein kleines bisschen langsamer sein, als die anderen. C# wird halt nicht in den nativen Prozessorcode compiliert, sondern in der .NET Runtime ausgeführt, die den Code erst zu Ende compiliert, wenn er ausgeführt wird.

Dafür ist C# aber deutlich angenehmer zu programmieren, als C oder C++, weil man nicht darauf achten muss, dass man irgendwelche Variablen als Pointer übergibt oder irgendwelchen Speicher wieder freigibt etc. Mit Rust hab ich nicht genug Erfahrung, um dir da was drüber zu erzählen. Soweit ich weiß, soll Rust wohl die Probleme von C und C++ lösen, ohne dadurch langsamer zu sein.


Palladin007  14.12.2023, 14:18
C# wird halt nicht in den nativen Prozessorcode compiliert, sondern in der .NET Runtime ausgeführt, die den Code erst zu Ende compiliert, wenn er ausgeführt wird.

Nicht zwingend, es gibt auch Native AOT.
Allerdings dürfte das immer noch ein wenig hinterher sein.

Im Grunde sind dass alles Compilersprachen, daher sollten sie sich in der Schnelligkeit nicht deutlich unterscheiden. D.h., der Code wird in Maschinencode umgewandelt, schneller geht es nicht.

Rust ist eine moderne Sprache und sicher interessant, man muss sie aber nicht kennen. Kommt eben darauf an, was man macht. Von den Sprachen würde ich am ehesten C# empfehlen, weil am weitesten verbreitet.


Valentin2882 
Beitragsersteller
 14.12.2023, 12:38

Vielen Dank:)

jo135  14.12.2023, 14:30
C# empfehlen, weil am weitesten verbreitet

Dein Ernst?