Programmier Sprache Und Laufzeit
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Die c't hat in Ausgabe 21/2003 einen Laufzeitvergleich zwischen ausgewählten Versionen von C++, C#, Java und Delphi gebracht. Der Artikel erweckt den Eindruck, als ob C++ mit zunehmender Objektorientiertheit langsamer wird und hat verständlicherweise in der deutschen C++ Gemeinde für einigen Aufruhr gesorgt. Natürlich ist dies nicht die erste fragwürdige Untersuchung zum Thema Laufzeitvergleich und es wird sicher nicht die letzte bleiben.
Seiten mit Untersuchungen zum Laufzeitverhalten verschiedener Programmiersprachen bzw. deren verschiedene Implementationen:
- http://www.bagley.org/~doug/shootout/: Laufzeittabellen mit diversen Sprachen zu unterschiedlichen Problemstellungen, update unter http://shootout.alioth.debian.org/index.php
- http://www.lib.uchicago.edu/keith/crisis/: Gewollt subjektive Sprachkritik/Benchmarks
- http://mozart.chat.net/~jeske/Projects/ScriptPerf/: Kleiner Laufzeitvergleich von Python, Ruby, Lua, Perl und C
- http://www.ipd.uka.de/~prechelt/Biblio/jccpprt_computer2000.pdf: "An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl" von Lutz Prechelt
- http://pws.prserv.net/dlissett//ben/ Richards Bench
Eine umfangreiche Liste mit Sprachvergleichen liefert das Google Directory.
Ich verstehe die Aufregung im Einleitungssatz dieser Seite nicht ganz. Objektorientierung schafft durch ein höheres Abstraktionsniveau strukturelle Vorteile, dies verursacht aber normalerweise auch Speicher- und/oder Laufzeit-Kosten. Ich finde es normal und es deckt sich mit meinen Erfahrungen, dass Programme mit steigender Objektorientierung tatsächlich langsamer werden. Natürlich versucht jeder Sprachentwickler diese Effekte durch eine geschickte Implementierung hintanzuhalten. -- HelmutLeitner
- Das hat aber insgesamt etwas mit der Betriebssystemschnittstelle zu tun. Man kann eine Smalltalk- oder Java-VM in Hardware gießen und bekommt dann einen besseren OO-Support. (Ist alles schon gemacht worden.) Wenn man innerhalb einer solchen Laufzeitumgebung nicht objektorientiert programmiert, kann das resultierende Programm langsamer ausfallen als die OO-Variante. Für mich interessant war, um welche Größenordnungen an Performanzunterschied es hier geht. Smalltalk hat man jahrzehntelang vorgeworfen, um einen Faktor 10 langsamer als C zu sein. Java wird für etwas schneller als Smalltalk gehalten (was meines Wissens auch nicht belegt ist), hat aber auch den Ruf weg, langsam zu sein. Der Artikel hat wohl versucht, mit solch absurden Vorurteilen Schluß zu machen. Mit dem Erfolg, dass man über Laufzeitunterschiede im Bereich von 25% diskutiert. -- SDö
Siehe auch ProgrammierSpracheUndEntwicklungsKosten
KategorieTabellen KategorieOptimierung KategorieDiskussion
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 7. Februar 2005 14:47 (diff))