Seite 1 von 1
Zeiten kleiner als ne Sekunden
Verfasst: Freitag 4. August 2006, 08:40
von gorba
Hi wider ma ne Frage von mir
Wie bekomme ich zuverlässig Werte von meinem Time Modul die kleiner sind als ne Sekunde? (Milli, mikro?) Bei c gibts ne funktion gettimeofday() aber in Python finde ich im Modul time nix was mir millisekunden liefert.
Und wie genau ist die "Python Uhr"?
greez
Re: Zeiten kleiner als ne Sekunden
Verfasst: Freitag 4. August 2006, 08:52
von gerold
gorba hat geschrieben:Wie bekomme ich zuverlässig Werte von meinem Time Modul die kleiner sind als ne Sekunde?
Hi gorba!
time.clock() --> das ist so ziemlich das genaueste, was du von Python erwarten kannst. Allerdings gibt clock() nicht die aktuelle Zeit zurück. Nähere Infos stehen in der Hilfe.
mfg
Gerold
Verfasst: Freitag 4. August 2006, 08:59
von gorba
clock( )
On Unix, return the current processor time as a floating point number expressed in seconds.
Ok, und wie bekomm ich dann aus den sekunden zuverlässig milli und mikrosekunden werte zurück?
Verfasst: Freitag 4. August 2006, 09:22
von gerold
gorba hat geschrieben:On Unix, return the current processor time as a floating point number expressed in seconds.
Hi gorba!
Das tut mir leid. Ich dachte, dass es unter Unix genau so gut wie unter Windows funktioniert.
Windows 2000 (Python 2.4):
Code: Alles auswählen
>>> import time
>>> time.clock()
7.6834367792383126e-007
>>> time.clock()
2.938073288454687
>>> time.clock()
5.1097167394850835
>>> time.clock()
6.4394377496296578
>>>
Debian (Python 2.4):
Code: Alles auswählen
>>> import time
>>> time.clock()
0.01
>>> time.clock()
0.01
>>> time.clock()
0.01
>>>
Vielleicht finde ich doch noch etwas besseres.
mfg
Gerold
Verfasst: Freitag 4. August 2006, 09:25
von birkenfeld
Unter Windows nimmt man time.clock(), unter Unix time.time() für möglichst genaue Zeiten.
Verfasst: Freitag 4. August 2006, 09:48
von gorba
evt. muss ich den Hintergrund erklären.
Habe eine relativ Zeitkritische Applikation, um dies zu vereinfachen, habe ich das eventmodell vergrössert, so das die reaktionszeit jetzt 1 sec ist. Die Frage ist, wie ich meinem Programm nun Leben einhauche, so, dass alle sekunde ein event hervorgerufen wird, der eine Funktion auslöst.
Wisst ihr was ich meine?
edit:
hab das ganze mal so gelöst:
Code: Alles auswählen
try:
import threading as trd
except ImportError:
import dummy_threading as trd
def print_time():
# ACTION whatever u want
timer_thread()
def timer_thread():
t = trd.Timer(0.01, print_time)
t.start()
try:
#do want you wanna do
finally:
print 'exit'
Wie findet ihr die Lösung?