Geschwindigkeit der Programmiersprachen
-
Es kommt auch auf das Einsatzgebiet an, würde ich sagen. Jede Sprache hat ihre vor- und nachteile sonst würde es nicht so viele davon geben.
Eine Sprache, deren Code zur Laufzeit noch intepretiert werden muss kann nicht so schnell sein wie eine, die direkt mit dem Microprozessor komuniziert. Dafür ist ja aber die Scriptsprache auch nicht geschafen.
Willst du ne Datenbank haben nimmst du sql, willst du ein Spiel progen dann wirst du bestimmt c++ nehmen usw.
-
EDIT : Doppelpost
-
Schön, er wollte aber nicht wissen, welche die beste ist, sondern welche die schnellste ist.
-
Bashar schrieb:
Schön, er wollte aber nicht wissen, welche die beste ist, sondern welche die schnellste ist.
hab ich doch geschrieben. Es kommt auf das Einsatzgebiet an.
-
Bashar schrieb:
Schön, er wollte aber nicht wissen, welche die beste ist, sondern welche die schnellste ist.
Schon wieder?!?
-
Wie bitte?
-
Wann hatten wir den letzten Vergleich? Ist doch noch keine 3 Monate her, oder? Wieso können die Leute net einfach n bissle suchen? ...
-
Wieso, bis jetzt hat noch keiner Java erwähnt. Oops!
-
Hmm.. also mein Eindruck von den Programmiersprachen:
Java - sehr schnelle Entwicklungszeit, da besseres Debugging, bessere IDEs, bessere Hilfen, weniger Kryptischer Code, .... dafür je nach Implementation und verwendeten Bibliotheken, etc. evtl. langsamerer Code und man kann Java nicht überall einsetzenC/C++ - Möglichkeit schnelleren Code zu schreiben, überall einsetzbar, dafür aber sehr empfindlich... wenn nicht sogar sehr schnell zickig in der Entwicklungszeit.
Sicher kommt es darauf an, wie gut man eine Sprache beherrscht, aber Tatsache ist, dass in Java sehr viel weniger Fehler gemacht werden, als unter C/C++ und sich zudem auch sehr viel leichter beherrschen läßt, als die beiden eben genannten.
Dann wäre da noch VB
... nunja, nix halbes nix ganzes... es wurde versucht den Programmierer so weit wie möglich von den Datentypen fernzuhalten ... dies wurde aber leider nur halbherzig durchgeführt.
Um mal eben schnell eine GUI zusammenzustricken benötigt man mit VB bestimmt am wenigsten Entwicklungszeit... aber für den rest...Ob einem die Verarbeitungszeit wirklich noch so wichtig ist, wenn die Software dafür nur die Hälfte an Entwicklungszeit benötigt... ich weiss nicht... mir jedenfalls nicht
-
diese seite
http://www.bagley.org/~doug/shootout/index2.shtml
brauch drigend mal ein update
wär doch mal was für ein projekt wa?
bye
tt
-
Bashar schrieb:
Schön, er wollte aber nicht wissen, welche die beste ist, sondern welche die schnellste ist.
Das ist nicht ganz richtig... ich wollte nur wissen ob jemand irgendwelche Tests kennt bei denen "baugleiche" Programme in verschiedenen Sprachen verglichen wurden.
Über die "schnellste" Sprache brauchen wir gar nicht diskutieren... weiss doch jeder dass da kein Weg am C64-Basic vorbeigeht.Gruß,
Michel
-
Ingo aka Desert Hawk schrieb:
Hmm.. also mein Eindruck von den Programmiersprachen:
Java - sehr schnelle Entwicklungszeit, da besseres Debugging, ... weniger Kryptischer CodeBesseres Debugging? Nope (-> VS.net 2003 hat nen ziemlich genialen Debugger. Da stinken die Java-IDEs ab). Weniger kryptische Code? Ansichtssache. Den kann man mit beiden Sprachen schreiben.
-
Gerard schrieb:
MaSTaH schrieb:
Aber alleine dadurch, dass die Sprache i.d.R. von einer VM interpretiert wird (die in C geschrieben ist???) sind der Geschwindigkeit Grenzen gesetzt.
das muss nix bedeuten, wenn dir HOT-Spot etwas sagt
Aber selbst durch Hotspot kann die Implementation nicht komplett an ein gutes C(++)-Kompilat herankommen. Oder war Hotspot nicht das mit dem optimierten JIT compiling?
-
Der Michel schrieb:
Bashar schrieb:
Schön, er wollte aber nicht wissen, welche die beste ist, sondern welche die schnellste ist.
Das ist nicht ganz richtig... ich wollte nur wissen ob jemand irgendwelche Tests kennt bei denen "baugleiche" Programme in verschiedenen Sprachen verglichen wurden.
Über die "schnellste" Sprache brauchen wir gar nicht diskutieren... weiss doch jeder dass da kein Weg am C64-Basic vorbeigeht.Gruß,
Michelin der C't habe sie mal nen Test gemacht, ich glaub, das war Oktober oder Novemer 2003. Kannst ja mal bei denen auf der Seite gucken, vielleicht findest du da was www.heise.de
EDIT: getestet wurden c#, c++, java
-
Online schrieb:
Eine Sprache, deren Code zur Laufzeit noch intepretiert werden muss kann nicht so schnell sein wie eine, die direkt mit dem Microprozessor komuniziert.
Eine Sprache, die in einen unveränderlichen Programmcode übersetzt wird, kann nicht so schnell sein wie eine, die zur Laufzeit dynamisch neu kompilieren kann um so den Maschinencode optimal an die Situation anzupassen und damit ein Maximum an Optimierung erlaubt.
Die Überprüfungen zur Laufzeit, wie z.B. die Überprüfung der Arraygrenzen, zieht die Geschwindigkeit natürlich wieder etwas nach unten. Theoretisch lässt sich mit einer VM aber eine höhere Geschwindigkeit erreichen als mit statischer Kompilierung.
-
der heise Test war aber absolut schlecht, da der Autor wohl kein C++ konnte.
Von C++ kann man keine Geschwindigkeit messen, da C++ nur eine Sprache ist und keine Implementierung. Von C# und Java gibt es auch sehr viele unterschiedliche Implementierungen.
Solche Tests sind alle absolut blödsinn und für die Tonne. Nicht nur weil idr. falsche Test Bedingungen und nicht selten schlechter Code (ja, *fast* jeder Programmiersprache bringt eine eigene Programmiertechnik mit und in C++ programmiert man anders als in Java und ganz absolut anders programmiert man zB. in Lisp).
-
na ja, der Test lief über drei Ausgaben glaub ich und der Autor hat selbst stellung dazu genommen. du bist nicht der erste, der diese kritik hervorbringt. Stand alles in der C't.
Warum kann man z.B. die geschwindigkeit von for-schleifen in verschiedenen Sprachen nicht messen?
-
DrZoidberg schrieb:
Eine Sprache, die in einen unveränderlichen Programmcode übersetzt wird, kann nicht so schnell sein wie eine, die zur Laufzeit dynamisch neu kompilieren kann um so den Maschinencode optimal an die Situation anzupassen und damit ein Maximum an Optimierung erlaubt.
das kommt doch ganz auf den zusammen hang an, wie oft braucht man den neu kompilieren bei den heutigen anwendung?
und das optimieren passiert natürlich ganz wo anders, so das es keine laufzeit kostetDrZoidberg schrieb:
Die Überprüfungen zur Laufzeit, wie z.B. die Überprüfung der Arraygrenzen, zieht die Geschwindigkeit natürlich wieder etwas nach unten.
das hatt aber nix mit vm zu tun, man kann auch in nativen programmen die array grenzen prüfen und eine vm braucht auch nicht prüfen ob die grenzen überschritten werden
DrZoidberg schrieb:
Theoretisch lässt sich mit einer VM aber eine höhere Geschwindigkeit erreichen als mit statischer Kompilierung.
schön, wenn wir danach gehen würden was theoretisch möglich ist ...
-
Online schrieb:
na ja, der Test lief über drei Ausgaben glaub ich und der Autor hat selbst stellung dazu genommen. du bist nicht der erste, der diese kritik hervorbringt. Stand alles in der C't.
Ich hasse diese "stand alles in der C't", da fehlt nur noch ein die haben immer recht. Hast Du Dir den Code mal angeschaut? Hast Du?
Ich hab ihn mir mal runtergeladen und ihn umgeschrieben. Zunächst mußte man mal was ändern bis es sich überhaupt übersetzen lies. Keine Ahnung, wie die damit irgendwas gemessen hatten. Danach konnte man mit 3 Handgriffen die Performance etwas mehr als verfünffachen.
Aber diese Kritik ist in der Tat nicht die erste, es gab damals einige schöne Threads in Rund um, die sich damit befaßt haben.MfG Jester
-
also mit "stand alles in der C't" meinte ich die Kritik an diesem Test. Die haben einige Briefe abgedruckt, die gehörig auf dem Autor eingeschlagen haben.
Im Grunde muss man sich selber klar werden was man davon halten soll. Der Autor hat Stellung dazu genommen warum er das so macht wie er das macht und das muss man akzeptieren. Jeder hat seine Meinung und die darf er frei vertretten. Die haben ja auch nichts unter den Tisch fallen lassen und sind offen auf die Kritik eingegangen. Dagengen kann man nichts sagen.