Nochmals Hallo,
ich hab jetzt SIZE auf 650 verringert. Mit psyco komme ich auf 13.3 sek, ohne auf 17.9 sek. Also scheint psyco doch etwas zu bringen, zumindest bei wx. Hmm, du hast pygame erwähnt. Find ich zwar eigenartig mit pygame sowas zu erstellen, aber gut. Mit pygame hab ich auch noch nichts gemacht. Vielleicht fällt jemand im Forum noch eine Möglichkeit ein, wie man meinen wx-code optimieren könnte, damit er schneller läuft.
Gruß
Mandelbrotmenge mit Tkinter
-
- User
- Beiträge: 188
- Registriert: Donnerstag 20. Juli 2006, 20:46
- Wohnort: Wien
- Kontaktdaten:
Klassiker:
1. Berechne nichts doppelt, z.b. auch dein z*z wird 2 mal berechnet
2. Verzichte auf die eingebauten Komplexen Zahlen von Python. Selbst rechnen ist schneller da du einige Berechnungen die dort "automatisch" passieren gar nicht brauchst. Damit kannst du z.b. auch gleich auf abs(z*z) verzichten da du gleich direkt mit dem Bailout**2 vergleichen kannst. Damit hättest du 2muls, 2adds und ein sqrt eingespart, pro Bildpunkt. Weitere Kleinigkeiten werden dir selbst auffallen sobald du die Komplexen Zahlen selbst implementierst.
4. Zeichnen mit einer Library die direktere Zugriffe auf Bildpunkte zulässt, z.b. Pygame
guck mal auf mein Blog, da hab ich mehr darüber geschrieben.
lgherby
1. Berechne nichts doppelt, z.b. auch dein z*z wird 2 mal berechnet
2. Verzichte auf die eingebauten Komplexen Zahlen von Python. Selbst rechnen ist schneller da du einige Berechnungen die dort "automatisch" passieren gar nicht brauchst. Damit kannst du z.b. auch gleich auf abs(z*z) verzichten da du gleich direkt mit dem Bailout**2 vergleichen kannst. Damit hättest du 2muls, 2adds und ein sqrt eingespart, pro Bildpunkt. Weitere Kleinigkeiten werden dir selbst auffallen sobald du die Komplexen Zahlen selbst implementierst.
4. Zeichnen mit einer Library die direktere Zugriffe auf Bildpunkte zulässt, z.b. Pygame
guck mal auf mein Blog, da hab ich mehr darüber geschrieben.
lgherby
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Auch wenn es schon sehr lange her ist... Ich bin heute auf die Ursprungssourcen gestoßen und hab es ein wenig verbessert:
Wenn man root.update() nicht jedesmal Aufruft, wird es wesentlich schneller, sieht dann so aus:
https://gist.github.com/1391335/
Wenn man root.update() nicht jedesmal Aufruft, wird es wesentlich schneller, sieht dann so aus:
https://gist.github.com/1391335/