[python-users] Programm beschleunigen und Parameter einlesen

Rebecca Breu rebecca at rbreu.de
Sa Feb 12 11:15:11 CET 2011


Jonas Stein <news at jonasstein.de> wrote:

> 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)

Das haette ich jetzt auch erwartet, da viele der Python-Bibliotheken
in C implementiert sind, unter anderem auch math. Deswegen ist meist
nicht empfehlenswert, selbst etwas nachzuprogrammieren, was es schon
fertig gibt.


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

http://docs.python.org/library/profile.html
http://wiki.python.org/moin/PythonSpeed/PerformanceTips

> 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?

Haengt natuerlich vom Kontext ab, aber eigentlich sind drei Buchstaben
schon etwas wenig. 


> 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?

Das Problem ist ja, dass Einrueckung eine syntaktische Bedeutung hat, und nur
der Programmierer weiss, was Sinn ergibt. Frage dich selbst: Kann ein Tool
automatisch bei einem C- oder Java-Programm Klammern reparieren?

> 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?

Die Kongfiguration wird doch nur einmal am Anfang irgendwo eingelesen.
Das hat ueberhaupt keine Auswirkung auf die weitere Rechenzeit. Nutzer-
freundliche Formate sind z.B. das ini-Format oder JSon, fuer das es 
Module in der stdlib gibt.


Gruss,
Rebecca
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 198 bytes
Beschreibung: nicht verfügbar
URL         : <http://lists.uni-koeln.de/pipermail/python-users/attachments/20110212/5d3385f9/attachment.sig>


Mehr Informationen über die Mailingliste python-users