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 : Sélectionner tout - Visualiser dans une fenêtre à part
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())Soit dans le premier exemple : 3, 72 sec >> 10 secclock : 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
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 :
J'y remarque surtout la phrase "this is the function to use for benchmarking".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.
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.
Partager