Fiabilité de time.clock()
Bonjour,
Il y a déjà quelques temps que j'avais remarqué que time.clock() me retournait des résultats inattendus mais comme je n'en avais qu'un besoin très accessoire, je n'avais pas investigué plus loin.
Maintenant que je voudrais faire une série de test, j'aimerais comprendre.
Exemples de résultats étranges:
Code:
1 2 3 4
|
print "clock :", time.clock(), "time :", time.strftime("%H:%M:%S", time.gmtime())
...some process
print "clock :", time.clock(), "time :", time.strftime("%H:%M:%S", time.gmtime()) |
Citation:
clock : 2.92 time : 07:36:04
clock : 6.64 time : 07:36:14
un process plus long :
clock : 3.42 time : 07:39:02
clock : 63.56 time : 07:40:59
Soit dans le premier exemple : 3, 72 sec >> 10 sec
et dans l'autre exemple : 61,14 sec >> 117 sec
Les résultats time sont ceux qui sont exacts
Je suis sous Linux processeur 32b
Dans la doc on peut lire ceci :
Citation:
On Unix, return the current processor time as a floating point number expressed in seconds. The precision, and in fact the very definition of the meaning of “processor time”, depends on that of the C function of the same name, but in any case, this is the function to use for benchmarking Python or timing algorithms.
J'y remarque surtout la phrase "this is the function to use for benchmarking".
Certes, cependant ...
Le type précis de processeur aurait-il une cause ?
Je peux me contenter parfois de la second méthode mais dans le cas de boucles à grand nombre d'itérations pour une tâche rapide, le dixième de seconde est significatif, c'est pourquoi je préférerais la méthode time.clock().
Merci pour toutes idées.