[Python-de] Laufzeit Python List vs String vs Perl

Andreas Jung lists at andreas-jung.com
Fre Jun 18 16:52:26 CEST 2004



--On Freitag, 18. Juni 2004 16:35 Uhr +0200 kgm <km-news3 at onlinehome.de> 
wrote:

> Hi,
>
> durch Jans List-Optimierung angeregt, habe ich nochmal
> String-Concatination mit der Listen-Lösung verglichen, Source [1]:
>
> Python: Anzahl=100000
> Laufzeit String: 192.2077 sec
> Laufzeit Liste: 0.4875 sec
>
> Zeigt, wie lahm die Strings sind :-(
>
> Das gleiche jetzt nochmal in einer Perl-Variante [2], natürlich auf dem
> gleichen Rechner gemessen:
>
> Perl: Anzahl=100000
> Laufzeit String: 0.220316
> Laufzeit Liste: 0.260375
>
> kein Schreibfehler, der Unterschied zu Python ist so groß :-(
>
> Ich finde zwar, das Python die um vieles klarere Sprache ist, aber in der
> Praxis zählen eben auch die Laufzeiten immer noch. Vermutlich ist das mit
> ein Grund, warum in den mir bekannten Firmen Perl und nicht Python
> eingesetzt wird...

Diese Schlußfolgerung aus diesem kleinen Test ist ziemlich blauäugig und 
kurzsichtig
Jeder halbswegs passable Programmierer weiss, das bei Stringkonkatentation
immer ein neuer String angelegt wird, insb. bei Schleifen hast Du das 
gefundene
exponentielle Laufzeitverhalten. Deswegen weiss auch jeder, dass man so 
etwas
über Listen oder StringIO macht. Wenn jemand die Sprachauswahl Python vs. 
Perl anhand *dieses*
Benchmarks festzumacht, dann sollte man ihn wegen Inkompetenz feuern.


Andreas Jung
zopyx.com - Software Development and Consulting Andreas Jung