Est-il un moyen simple / module correctement mesurer le temps écoulé en python? Je sais que je peux simplement vous appelez time.time()
deux fois et prendre la différence, mais qui donnera des résultats erronés si l'heure du système est modifié. D'accord, cela n'arrive pas très souvent, mais elle indique que je suis en mesure de quelque chose de mal.
À l'aide de time.time()
pour mesurer des durées est incroyablement rond-point, quand vous pensez à ce sujet. Vous prenez la différence des deux temps absolu des mesures qui sont construits à partir de la durée des mesures (effectuées par des timers) et connu absolue fois (manuellement ou via ntp), qui ne vous intéresse pas du tout.
Alors, est-il un moyen d'interroger ce "timer temps" directement? J'imagine qu'il peut être représenté comme une milliseconde ou une valeur qui n'a pas de sens absolu de la représentation (et donc n'a pas besoin d'être ajusté avec le système de temps). En cherchant un peu, il semble que c'est exactement ce qu' System.nanoTime()
n'en Java, mais je n'ai pas trouver un correspondant de la fonction Python, même si elle devrait (matériel technique) d'être plus facile à donner que time.time()
.
Edit: Pour éviter la confusion et de l'adresse de réponses ci-dessous: Ce n'est pas sur les modifications d'heure d'été, et je ne veux pas le temps CPU soit - je veux écoulé le temps physique. Il n'a pas besoin d'être très fin, et même pas particulièrement précis. Il ne devrait pas me donner négative durées, ou des durées qui sont de plusieurs ordres de grandeur (au-dessus de la granularité), juste parce que quelqu'un a décidé de régler l'horloge du système à une valeur différente. Voici ce que le Python docs dire à propos de 'temps.time()':
C'est exactement ce que je veux éviter, car elle peut conduire à des choses étranges comme des valeurs négatives dans les calculs de temps. Je peux contourner cela pour l'instant, mais je crois que c'est une bonne idée pour apprendre à utiliser les solutions appropriées lorsque cela est possible, depuis la kludges va revenir à vous mordre un jour.
Edit2: Certaines recherches démontrent que vous pouvez obtenir un système indépendant du temps de mesure comme je veux dans Windows en utilisant GetTickCount64 () sous Linux, vous pouvez l'obtenir dans la valeur de retour de fois(). Cependant, je n'arrive toujours pas à trouver un module qui fournit cette fonctionnalité en Python.