Geschwindigkeitsvergleich von Programmiersprachen

Gute Links und Tutorials könnt ihr hier posten.
Antworten
OTB
User
Beiträge: 15
Registriert: Samstag 24. März 2007, 17:54

Ein sehr interessanter Geschwindigkeitsvergleich (Benchmark) von
Programmiersprachen, mit vielen Optionen
und Einblick in den Quellcode der verschiedenen Testprogramme, ist hier zu bewundern:
http://shootout.alioth.debian.org/gp4sa ... l&lang=all
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

  1. Altbekannt, der Shootout ist eine feste Größe geworden. Ebenso wie dier Win32 Shootout.
  2. Es werden Implementationen und nicht Sprachen verglichen. Sprachen haben keine Ausführgeschwindigkeit. Sie haben nur eine Lerngeschwindigkeit und die ist nicht empirisch messbar.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Scheinbar wird hier auch die Qualität des Programmerstellers berücksichtigt, ob ich das ein fairer Vergleich ist wage ich zu bezweifeln.

Wenn man den C Code mit der angeblichen Äquivalenz in z.b. Python oder PHP ansieht kann man unschwer erkennen das die C Programmierer hier eindeutig besser auf "Speed" getrimmt haben.

Schwierig, schwierig, ist glaub ich auch niemals wirklich fair.

lgherby
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

thelittlebug hat geschrieben:Wenn man den C Code mit der angeblichen Äquivalenz in z.b. Python oder PHP ansieht kann man unschwer erkennen das die C Programmierer hier eindeutig besser auf "Speed" getrimmt haben.
Wobei Python-Code oft auch mit Absicht nicht auf Geschwindigkeit optimiert ist: Readability counts.
Ich finde als Programmierer ein lesbares Programm besser als ein unlesbares, welches 2% schneller ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Leonidas hat geschrieben:Wobei Python-Code oft auch mit Absicht nicht auf Geschwindigkeit optimiert ist: Readability counts.
"Readability counts", bei einem Geschwindigkeitsvergleich? Interessant :)

Viele der Aufgaben im Shootout kann man in gewissen Programmiersprachen anders/schneller lösen, diese Versionen werden aber von den Leuten dort nicht akzeptiert. Gibt schon einiges an Diskussionen und Kritik dazu.

Zum groben Abschätzen finde ich den Shootout aber ganz gut.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

mawe hat geschrieben:
Leonidas hat geschrieben:Wobei Python-Code oft auch mit Absicht nicht auf Geschwindigkeit optimiert ist: Readability counts.
"Readability counts", bei einem Geschwindigkeitsvergleich? Interessant :)
Ja, wenn der Vergleich fair sein sollte, sollte er ja auch typische Programme benchmarken, nicht Programme die so geschrieben sind, dass sie möglichst schnell sind und dadurch weniger verständlich. Wenn man im Shootout die Programme so umschreibt, dass sie nur auf Geschwindigkeit optimiert werden, finde ich dass sie dann nicht mehr typische Python-Programme repräsentieren sondern Sonderfälle.
Typischerweise sind Python-Programme nun mal auf Lesbarkeit getrimmt. Ist in der Regel ja auch ausreichend schnell.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Leonidas hat geschrieben:Ja, wenn der Vergleich fair sein sollte, sollte er ja auch typische Programme benchmarken, nicht Programme die so geschrieben sind, dass sie möglichst schnell sind und dadurch weniger verständlich.
Nun, das sehe ich nicht so. Die Programme sind auch keineswegs "typisch", weil ja oft ein Lösungsweg aufgezwungen wird.

Der Shootout ist IMO weder fair (was immer das in dem Zusammenhang heissen mag) noch objektiv. Aber ich glaube das erwartet auch niemand ernsthaft. Wie gesagt, als grobe Einschätzung ist er recht nett.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Aber anders ist ein Vergleich nicht möglich ;-)

Mit echtem Code aus echten Einsatzfällen für alle Sprachen zu bekommen ist unmöglich.
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Mal ganz davon abgesehen, dass die Sprachen auch ganz unterschiedliche Einsatzgebiete haben und sicher nicht alle für hochperformante Implementierungen gedacht sind oder benutzt werden.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Genau, Python ist bekanntermaßen nicht für hochperformante Sachen geeignet. Das sollte klar sein.
Aber wo ist schon die Performance wirklich wichtig??? Das sind IMHO weniger Bereiche als man eigentlich denkt.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

Es gibt ja immer noch die Möglichkeit in C zu implementieren wenn Geschwindigkeit wirklich ein Kriterium sein sollte.

Das hab ich mal bei einem Feder-Masse System gemacht da ich da mit der Performance alles andere als zufrieden war. Aber dafür war die reine Python Version schnell fertig :) Mit C wär ich warscheinlich ein ganzes Wochenende mit dicken Büchern bei der Aufgabe gesessen. Ganz zu schweigen vom dadurch übertriebenen Kaffee, Zigaretten und Lebensmittelmissbrauchs den ich dabei betrieben hätte.

Hätt ich mir aber auch sparen können da es ja PyODE gibt, tja, wenn man solche Details nur schon vorher wüsste :D

Warscheinlich gibt es jo sowieso für jeden erdenklichen Zweck bereits irgendeine optimierte Version in C die irgendjemand eh schon mal eingebunden hat. Python != LowLevel, und ich finde das auch gut so.

lgherby
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Fazit: Python ist gesund für Leib und Seele... :lol:

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Einigermaßen komplett würde ein Geschwindigkeitsvergleich zwischen Sprachen erst, wenn man auch noch die Geschwindigkeit aufnimmt, die Hineindenken und Umsetzen in Code in Anspruch nehmen. Dazu noch die Fehlerrate oder Zeit für's Suchen von sprachspezifisch häufigen Problemen (schwer zu findende malloc-Probleme sind außerhalb von C/C++ ja eher selten) und schon sieht das alles ganz anders aus. Und wer Spaß hat, rechnet noch Entwicklungszeit und Betriebskosten gegen, damit sich der Chef ein paar $$$-Statistiken ansehen kann.
Antworten