time.sleep ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
blubber
User
Beiträge: 123
Registriert: Montag 19. März 2007, 09:08

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ß
BlackJack

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".
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Hab das aus spass mal durchgespielt

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
>>>
sobald meinem Rechner im Hintergrund irgendwas anderes passiert merkt man schon einige Schwankungen.
Costi
User
Beiträge: 545
Registriert: Donnerstag 17. August 2006, 14:21

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
Gromit
User
Beiträge: 51
Registriert: Montag 8. Mai 2006, 19:07

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".
Gerüchteweise soll es auch sowas wie Echtzeitbetriebssysteme und entsprechende Erweiterungen für Linxu geben.
Antworten