Hallo,
hab mir für ein relativ rechenaufwändiges Programm eine Benutzeroberfläche auf wxpython geschrieben. Diese ist nur dazu da, um Eingaben für das eigentliche Programm zu machen. In beiden Fällen ist das Programm mit psyco beschleunigt.
Mit Benutzeroberfläche ist das Programm jetzt aber 3-4x langsamer als ohne.
Woran kann das liegen? Und kann man das umgehen?
Danke für eure Hilfe
Frank
Durch wxpython langsamer?
Wie ist der Unterschied, wenn du es ohne psyco ausführst?Frank86 hat geschrieben:Hallo,
hab mir für ein relativ rechenaufwändiges Programm eine Benutzeroberfläche auf wxpython geschrieben. Diese ist nur dazu da, um Eingaben für das eigentliche Programm zu machen. In beiden Fällen ist das Programm mit psyco beschleunigt.
Mit Benutzeroberfläche ist das Programm jetzt aber 3-4x langsamer als ohne.
Woran kann das liegen? Und kann man das umgehen?
Danke für eure Hilfe
Frank
Also das Verhältnis console : wxPythonFrank86 hat geschrieben:Da ist es nochmal langsamer...
hab aber langsam die Vermnutung, dass es nicht an wxpython sondern an der Verbindung zwischen der Benutzfläche und dem eigentlichem Prozess liegt...
mit psyco ca. 3-4 mal langsamer
und ohne psyco: > 3-4 mal langsamer?
finden irgendwelche Ausgabe während der Berechnung statt?
Wenn es nicht zu gross ist, kannst du ja ein gekürztes vollständiges
Sample posten.
der code ist bisschen länger als 8000 zeilen...
aber ich bin mir jetzt ziemlich sicher dass es nicht an wxpython lag...
liegt wahrscheinlich daran, dass ich das eigentliche Programm einfach eingerückt hab, und zu ner eigenen Funktion gemacht, ums einfacher mit wx verbinden zu können...
kann das sein, dass das so viel ausmacht?
aber ich bin mir jetzt ziemlich sicher dass es nicht an wxpython lag...

liegt wahrscheinlich daran, dass ich das eigentliche Programm einfach eingerückt hab, und zu ner eigenen Funktion gemacht, ums einfacher mit wx verbinden zu können...
kann das sein, dass das so viel ausmacht?
Also:
habs jetzt mal umgeschrieben. Liegt wohl daran, dass psyco.full() nicht mehr richtig geht wenn man wxpython mit dabei hat.
wie mach ich das, dass ich nur ne einzellne funktion mit psyco beschleunige?
mit:
import psyco
psyco.bind(Funktion) ?
weil damit geht's nicht richtig
oder ich wends falsch an....
habs jetzt mal umgeschrieben. Liegt wohl daran, dass psyco.full() nicht mehr richtig geht wenn man wxpython mit dabei hat.
wie mach ich das, dass ich nur ne einzellne funktion mit psyco beschleunige?
mit:
import psyco
psyco.bind(Funktion) ?
weil damit geht's nicht richtig

- sunmountain
- User
- Beiträge: 89
- Registriert: Montag 13. März 2006, 17:18
Das Problem, das Du beschreibst, hängt vor allem mit der Art und Weise zusammmen, wie solge GUI Programme funktionieren.
Selbst wenn dein wxPython Frontend nichts macht, erhält es
Nachrichten und wertet diese aus.
Im besten Fall ignoriert es diese völlig ...
... und braucht trotzdem CPU Zeit, die von der Rechenfunktion abgezweigt
wird.
Psyco wird da nicht viel bringen, Du musst den GUI und den Rechencode
entkoppeln.
Der Effekt ist je nach OS mal mehr mal weniger
schlimm.
Selbst wenn dein wxPython Frontend nichts macht, erhält es
Nachrichten und wertet diese aus.
Im besten Fall ignoriert es diese völlig ...
... und braucht trotzdem CPU Zeit, die von der Rechenfunktion abgezweigt
wird.
Psyco wird da nicht viel bringen, Du musst den GUI und den Rechencode
entkoppeln.
Der Effekt ist je nach OS mal mehr mal weniger
schlimm.
naja ok...
danke in jedem fall für eure bemühungen... das entkoppeln lass ich erst mal. die geschwindigkeit ist eh noch mein geringstes problem...
andere frage:
ist es möglich wenn ich mit sizern arbeite und da eine StaticBitmap hab, andere Grafiken drüber zu legen?und deren Position je nach Eingabe des Benutzers zu variieren?
lg
danke in jedem fall für eure bemühungen... das entkoppeln lass ich erst mal. die geschwindigkeit ist eh noch mein geringstes problem...
andere frage:
ist es möglich wenn ich mit sizern arbeite und da eine StaticBitmap hab, andere Grafiken drüber zu legen?und deren Position je nach Eingabe des Benutzers zu variieren?
lg
- sunmountain
- User
- Beiträge: 89
- Registriert: Montag 13. März 2006, 17:18
Es hört sich so an, als suchtest Du eine Entsprechung für
die guten alten Spritefields ?
die guten alten Spritefields ?
- sunmountain
- User
- Beiträge: 89
- Registriert: Montag 13. März 2006, 17:18
Vielleicht klärt das Deine Frage:
wxWidgets Doku 2.6.2:
wxStaticBitmap
A static bitmap control displays a bitmap. It is meant for display of the small icons in the dialog boxes and is not meant to be a general purpose image display control. In particular, under Windows 9x the size of bitmap is limited to 64*64 pixels and thus you should use your own control if you want to display larger images portably.
wxWidgets Doku 2.6.2:
wxStaticBitmap
A static bitmap control displays a bitmap. It is meant for display of the small icons in the dialog boxes and is not meant to be a general purpose image display control. In particular, under Windows 9x the size of bitmap is limited to 64*64 pixels and thus you should use your own control if you want to display larger images portably.