Hi,
eine Frage zu time.sleep()
Kann ich davon ausgehen, dass z.B. ein time.sleep(1) auch wirklich exakt einer Sekunde entspricht? Unabhängig von System und Rechnerleistung? Ist für mich wichtig, weil ich evtl. Messungen im Millisekunden-Bereich machen muss und da sollte das schon genau sein.
Danke
Gruß
time.sleep ?
Nein davon kannst Du nicht ausgehen. Wirklich genaue Messungen kannst Du auf einem Multitasking-Betriebssystem sowieso vergessen, da kann Dir immer ein anderer Prozess dazwischenkommen und Zeit "klauen".
Hab das aus spass mal durchgespielt
sobald meinem Rechner im Hintergrund irgendwas anderes passiert merkt man schon einige Schwankungen.
Code: Alles auswählen
>>> def test(sleeptime):
... start = time()
... sleep(sleeptime)
... print "%2.9fs" % (time() - start )
...
>>> test(1)
1.000000000s
>>> test(2)
1.999000072s
>>> test(3)
2.998999834s
>>> test(1)
0.999000072s
>>>
hier noch ein anderes interesantes beispiel:
Code: Alles auswählen
>>> filter(lambda n: time.time() == time.time(), xrange(100000) )
[18184, 48078, 56372, 70738, 75535, 76731, 80325, 85116]
cp != mv
Gerüchteweise soll es auch sowas wie Echtzeitbetriebssysteme und entsprechende Erweiterungen für Linxu geben.BlackJack hat geschrieben:Nein davon kannst Du nicht ausgehen. Wirklich genaue Messungen kannst Du auf einem Multitasking-Betriebssystem sowieso vergessen, da kann Dir immer ein anderer Prozess dazwischenkommen und Zeit "klauen".