[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