Geschwindigkeit der Programmiersprachen



  • 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 kostet 🙄

    DrZoidberg 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.



  • 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.

    Hat er den Test nochmal gemacht mit vernünftigen Code? Nein, also war der Test Sinnlos und man kann ihn mit gutem Recht aus dem Gedächtniss löschen und als Schwachsinnig abtun.

    Warum kann man z.B. die geschwindigkeit von for-schleifen in verschiedenen Sprachen nicht messen?

    kann man schon. Sagt aber nichts aus und wird dir wahrscheinlich sogar überall die gleichen Ergebnisse liefern.


Anmelden zum Antworten