[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