PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ vs C# vs Java Benchmarks?


Monger
2004-12-09, 11:56:31
Die Debatte dürfte ja etwa so alt sein wie jede einzelne Sprache, aber vor kurzem hatte ich eine angeregte Debatte über die Performance der interpretierten Sprachen...


Ich hab mal versucht ein bißchen zu googlen, hab aber nur sehr synthetische Benchmarks gefunden. Da ich aber die Vermutung habe dass auf einem realen System Garbage Collection etc. einen spürbaren Einfluss haben...


Kennt jemand hier Benchmarks, wo gewissermaßen das selbe Programm auf verschiedenen Sprachen umgesetzt und dann unter realen Bedingungen gebencht wurde?

Trap
2004-12-09, 12:32:23
Nein, ich kenne leider auch keine Vergleich bei realistischen Problemstellungen.

Such mal nach Pseudoknot, damit gabs ein paar Vergleiche zwischen Programmiersprachen.


Sonst kenn fällt mir ein:
http://www.flownet.com/gat/papers/lisp-java.pdf (die Prechtelt Studie ist auch interessant, aber schwer im Netz zu finden)
http://shootout.alioth.debian.org/

Aqualon
2004-12-09, 13:23:15
Praxisbenchmark sind meiner Meinung nach auch so gut wie unmoeglich. Ein Programm, das wirklich einen praktischen Zweck hat, braucht ziemlich lange zum implementieren und muss vorallem bei GUI-Sachen viel Ruecksicht auf das verwendete Betriebssystem nehmen. Und ein fuer eine Sprache geschriebenes und optimiertes Programm in eine andere umzuschreiben, ist verdammt viel Aufwand, wenn man nicht nur einen 0815-Port haben will, sondern wirklich die Vorteile der neuen Programmierspache ausnutzen moechte.

Die einzige Chance auf einen fairen Vergleich waere zwei Gruppen von Profis in der jeweiligen Programmiersprache jeweils ein Programm erstellen zu lassen und damit zu benchen. Aber ob sich dafuer der Aufwand lohnt? Man muesste natuerlich neben der Performance auch die benoetigte Zeit zur Implementierung mit beruecksichtigen (die Kriterien dazu will ich nicht aufstellen ;)).

Aqua

Trap
2004-12-09, 13:33:05
Ich frage mich warum man nicht die Praktikumsaufgaben an Unis dazu nutzt solche Vergleichsdaten zu sammeln. Da hat man noch die beste Möglichkeit so etwas zu untersuchen...

Wahrscheinlich weil sie immernoch zu klein sind. Mehr als 1000 Zeilen Code wird man selbst bei Semesterabschlussarbeiten nicht haben.

Gast
2004-12-09, 15:13:54
Die einzige Chance auf einen fairen Vergleich waere zwei Gruppen von Profis in der jeweiligen Programmiersprache jeweils ein Programm erstellen zu lassen und damit zu benchen. Aber ob sich dafuer der Aufwand lohnt? Man muesste natuerlich neben der Performance auch die benoetigte Zeit zur Implementierung mit beruecksichtigen (die Kriterien dazu will ich nicht aufstellen ;)).

Aqua

Wenn ich Chef einer Softwarefirma wäre, würde mich so eine Studie brennend interessieren. Und das wäre mir auch einiges an Geld wert, wenn es letztendlich einen Wettbewerbsvorteil darstellt...

Monger
2004-12-09, 15:14:37
Ups, obiges stammte von mir...

Exxtreme
2004-12-09, 15:16:17
Wenn ich Chef einer Softwarefirma wäre, würde mich so eine Studie brennend interessieren. Und das wäre mir auch einiges an Geld wert, wenn es letztendlich einen Wettbewerbsvorteil darstellt...
NAja, man darf nicht nur die Sprache an sich betrachten.

Monger
2004-12-09, 15:21:39
NAja, man darf nicht nur die Sprache an sich betrachten.

Klar, Komfort etc. spielt natürlich auch eine Rolle. Ich meine ja auch nur WENN Performance für mich eine Rolle spielen würde, wäre das schon interessant. Zumindest C# und Java schenken sich in Sachen Komfort und Umfang ja nicht viel (Passende Entwicklungsumgebung vorausgesetzt). Momentan hält sich ja noch beständig das Gerücht, dass C++ performancemäßig den anderen Sprachen deutlich überlegen wäre. Wäre es das nicht, sehe ich absolut keinen Grund mehr an C++ zu kleben.

HellHorse
2004-12-09, 16:52:18
Hmm, was mir auf Anhieb einfällt sind Frameworks wie JUnit oder log4j die auch für andere Sprachen portiert wurden (ok JUnit ist ein SUnit Port). Das Problem ist wohl auch da, dass der Code wohl nicht mehr so ähnlich ist. NUnit setzt afaik stark auf Attributes und CppUnit fehlt natürlich die ganze Java Reflection Geschichte, die JUnit macht und so ziemlich das einzige ist was bei JUnit "gerechnet" wird nebst dem Event-System.