Bewusste Verzögerung von Prozessen
Verfasst: Dienstag 25. März 2008, 17:49
Um eine graphische Animation darzustellen brauche ich eine absichtlich verzögerte Darstellung. Diese soll möglichst so realisiert werden, dass auf unterschiedlichen Rechnern und Betriebssystemen (insbesondere Linux und Windows) in etwa die gleiche Animationsgeschwindigkeit erzielt wird.
Meine bisherige Lösung sieht so aus, dass ich kleine Zeitverzögerungen einbaue. Auf meinem Linuxsystem kann ich mittels time.time() ausreichend kleine Zeitintervalle (im zweistelligen Mikrosekundenbereich) messen und das ganze so realisieren, wie ich es gerne hätte.
Nun kann man ja in der Dokumentation dazu nachlesen, dass time.time() auf unterschiedlichen Betriebssystemen durchaus wesentlich ungenauer sein kann. Auf einem Windowssystem kann ich es derzeit aber nicht testen.
Die Empfehlung der Doku - time.clock() - zu verwenden, entfällt für Linux.
Mit dem timeit-Modul habe ich es ebenfalls nicht in der gewünschten Genauigkeit realisieren können.
Die after()-Methode von Tkinter ist mit mind. 1 ms ebenfalls nicht zu gebrauchen.
Frage(n) also:
Ist die Idee mit den eingebauten Wartezeiten für die Animation an sich schlecht? Kann man das anders besser lösen?
Wenn es die beste Lösung ist: Ist time.clock() unter Windows genau genug, um die gewünschten kurzen Zeiten messen zu können?
Edit: time.sleep() habe ich natürlich auch getestet; ist aber zu träge bzw. ungenau, jedenfalls unter Linux.
Meine bisherige Lösung sieht so aus, dass ich kleine Zeitverzögerungen einbaue. Auf meinem Linuxsystem kann ich mittels time.time() ausreichend kleine Zeitintervalle (im zweistelligen Mikrosekundenbereich) messen und das ganze so realisieren, wie ich es gerne hätte.
Nun kann man ja in der Dokumentation dazu nachlesen, dass time.time() auf unterschiedlichen Betriebssystemen durchaus wesentlich ungenauer sein kann. Auf einem Windowssystem kann ich es derzeit aber nicht testen.
Die Empfehlung der Doku - time.clock() - zu verwenden, entfällt für Linux.
Mit dem timeit-Modul habe ich es ebenfalls nicht in der gewünschten Genauigkeit realisieren können.
Die after()-Methode von Tkinter ist mit mind. 1 ms ebenfalls nicht zu gebrauchen.
Frage(n) also:
Ist die Idee mit den eingebauten Wartezeiten für die Animation an sich schlecht? Kann man das anders besser lösen?
Wenn es die beste Lösung ist: Ist time.clock() unter Windows genau genug, um die gewünschten kurzen Zeiten messen zu können?
Edit: time.sleep() habe ich natürlich auch getestet; ist aber zu träge bzw. ungenau, jedenfalls unter Linux.