Seitenanfang

Perlformance

TIMTOWDI: There is more than one way to do it ist das Perl-Credo. Some ways are better than others ergänzte Perl::Critic später und diesen Spruch möchte ich heute etwas abwandeln: Some ways are faster than others. Natürlich muss man sich die Frage stellen, wie wichtig Geschwindigkeit für eine Scriptsprache überhaupt ist. Sollten zeitkritische Aktionen nicht besser gleich in C oder einer ihrer Variationen geschrieben werden?

perlformance.pngEigentlich versuche ich, für jedes Problem das passende Werkzeug zu wählen. Projekte, die vor der Definition des Inhalts bereits "Basic", "PHP", "Java", "C" oder "Perl" als Werkzeug festlegen, schaffen sich selbst unnötig Probleme. Wer würde einen Egoshooter in PHP schreiben? Oder ein kleines Webscript in C? Wie wäre es mit einem Linux-Kernel in Basic?

Eigentlich sollte sich die Performance-Frage bei einer Scriptsprache nie stellen: Scriptsprachen erlauben eine sehr hohe Entwicklungsgeschwindigkeit, die aber zulasten der Ausführungsgeschwindigkeit geht. Auf der anderen Seite ist muss allerdings auch die Frage erlaubt sein, ob es sinnvoll ist, die gesamte Verwaltung und das User-Interface in Perl zu entwickeln, nur um dann für die wenigen Routinen, die tatsächlich hochperformant sein müssen, auf eine andere Sprache auszuweichen.

Meist ist es das nicht und so wird diejenige Sprache zur Projekt-Programmiersprache, die für die meisten Komponenten am sinnvollsten ist (nur in der Theorie, in der Praxis ist natürlich auch ausschlaggebend, welche Programmiersprachen der Entwickler oder das beauftragte Unternehmen leisten können).

So entstehen immer wieder Quellcodeteile - auch in Perl - die nicht Lesbarkeit, Verständlichkeit oder Übereinstimmung mit dem vorherrschenden Codestyle als oberstes Ziel haben, sondern Geschwindigkeit. Natürlich darf die Geschwindigkeits-Ausrede aber nicht pauschal dafür genutzt werden, um den kompletten Code abseits aller Richtlinien zu entwickeln.

Perl bietet mit verschiedenen Profiling-Tools und Benchmark-Modulen eine große Auswahl an Werkzeugen zur Optimierung, die aber auch nur helfen, wenn sie auch angewendet werden. Unit-Tests können ebenfalls ein sinnvolles Werkzeug für geschwindigkeitsbewusste Optimierung werden, beispielsweise in dem sie sicherstellen, dass einzelne Funktionen gewisse Laufzeiten nicht überschreiten.

 

Noch keine Kommentare. Schreib was dazu

Schreib was dazu

Die folgenden HTML-Tags sind erlaubt:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>