Messung der verstrichenen Zeit in Python

Gibt es eine einfache Möglichkeit /Modul richtig Messen Sie die verstrichene Zeit in python? Ich weiß, dass ich Sie einfach nennen time.time() zweimal und nehmen Sie den Unterschied, aber das ergibt falsche Ergebnisse, wenn die Systemzeit geändert wird. Zugegeben, das passiert nicht sehr oft, aber es bedeutet, dass ich die Messung, die falsche Sache.

Mit time.time() zur Messung von Laufzeiten ist unglaublich Kreisverkehr, wenn man darüber nachdenkt. Nehmen Sie die Differenz von zwei absoluten Messungen der Zeit, die wiederum konstruiert von Dauer-Messungen (durchgeführt durch Timer) und der bekannten absoluten Zeiten (manuell oder über einen ntp), dass Sie nicht daran interessiert sind, an alle.

So, gibt es eine Möglichkeit zur Abfrage dieser "timer-Zeit" direkt? Ich könnte mir vorstellen, dass es dargestellt werden kann, wie eine Millisekunde oder Mikrosekunde Wert, hat keine aussagekräftigen absoluten Darstellung (und somit nicht angepasst werden müssen, um mit der system-Zeit). Suchen Sie ein bisschen herum, es scheint, dass dies genau das ist, was System.nanoTime() nicht in Java, aber ich habe nicht gefunden, eine entsprechende Python-Funktion, obwohl es sollte (hardware-technisch) einfacher zu stellen als time.time().

Edit: um Verwirrung Zu vermeiden und Adresse Antworten: es geht nicht um die Sommerzeit, und ich will nicht die CPU-Zeit, die entweder - ich will verstrichene physische Zeit. Es muss nicht sehr fein ist, und auch nicht besonders präzise. Es darf nur nicht, mir negative Laufzeiten oder Laufzeiten, die sind um mehrere Größenordnungen (über die Granularität), nur weil jemand beschlossen, um die system-clock auf einen anderen Wert. Hier ist, was die Python docs sagen, über Zeit.Zeit()':

"Während diese Funktion in der Regel gibt nicht-abnehmenden Werten, es zurückgeben kann, einen niedrigeren Wert als ein vorheriger Anruf, wenn die Systemuhr wurde zurück zwischen die beiden Aufrufe"

Dies ist genau das, was ich vermeiden möchte, da es kann dazu führen seltsame Dinge, wie negative Werte in der Zeit-Berechnungen. Ich kann dies umgehen in dem moment, aber ich glaube, es ist eine gute Idee, um zu lernen mit den richtigen Lösungen, wo dies möglich ist, da die kludges kommen wieder zu beißen, die Sie eines Tages.

Edit2: Einige der Forschung zeigt, dass Sie ein system erhalten, Zeit, die unabhängige Messung wie ich will, im Windows mit GetTickCount64(), unter Linux können Sie es in der return-Wert der Zeit, die(). Allerdings habe ich noch nicht finden können, ein Modul stellt diese Funktion in Python.

InformationsquelleAutor der Frage Medo42 | 2011-09-14

Schreibe einen Kommentar