[python-users] Programm beschleunigen und Parameter einlesen

Jonas Stein news at jonasstein.de
Fr Feb 11 23:12:28 CET 2011


Hallo,

um meine Python Kenntnisse etwas zu verbessern habe ich
mir ein kleines Projekt ausgesucht, dass ich etwas verbessern moechte.

Das Skript sucht Flaechen gleicher Farbe auf Satellitenbildern und wird 
z.B. fuer die freie Weltkarte Openstreetmap verwendet.

Problem 1: Das Skript [1] ist leider noch sehr traege.

Wie berechnet man in Python am schnellsten die Quadratwurzel?

Ein Heronverfahren mit for-Schleife bis 6. Stufe war langsamer als 
math.sqrt(x)

Ich bin mir aber noch nicht sicher, ob x**0.5 oder math.sqrt(x) 
schneller ist. Google fand dazu alle moeglichen Antworten was die 
schnellste Wurzel sei.


Kann mir jemand einen Profiler empfehlen, mit dem ich die "Bremsen" im 
Skript aufspueren kann?


Problem 2: Der Code laeuft aber ist haesslich. In einer Datei habe ich 
schon etwas aufgeraeumt. Pylint meckert aber noch jede Variable unter 3 
Buchstaben an habe ich das Gefuehl. Ich glaube die lasse ich aber so, 
oder was meint Ihr?

Groessere Sorgen machen mir die Einrueckungen. Ich hatte Muehe den Code 
richtig einzuruecken. Das automatische Einruecken von vim und Emacs 
hatte nicht immer die Ebenen erkannt, die sich der Autor gedacht hatte 
und so musste ich jede Zeile manuell einruecken.

Kennt jemand ein Tool, dass den Code zuverlaessig aufraeumt/einrueckt?

Derzeit werden Einstellungen in der Programmdatei gemacht. Ich faend es 
huebscher, wenn es eine config-Datei gaebe, in der die Variablen seperat 
gesetzt werden. Das wuerde vielen Anwendern entgegen kommen.

Mit welchen Mitteln soll ich die Konfiguration auslagern, wenn ich nicht 
zuviel Rechenzeit verschenken will? Oder lieber garnicht auslagern?

Vielen Dank fuer Tipps und ein schoenes Wochenende,


[1] https://github.com/jonasstein/fuzzer

-- 
Jonas Stein <news at jonasstein.de>



Mehr Informationen über die Mailingliste python-users