Warning: Undefined array key "DOKU_PREFS" in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/common.php on line 2082
decorateurs_cache [Les recettes Python de Tyrtamos]

Outils pour utilisateurs

Outils du site


decorateurs_cache

Warning: Undefined array key -1 in /home/clients/a4e6fc1ce1761b72982b805de0f418c4/web/python/mesrecettespython/inc/html.php on line 1458

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
decorateurs_cache [2011/04/04 20:40]
tyrtamos
decorateurs_cache [2011/04/04 20:56]
tyrtamos
Ligne 191: Ligne 191:
     a = randint(1,20)     a = randint(1,20)
     x = calcul(a)     x = calcul(a)
-    print i, a, x, len(decocache.adr['calcul'].cache)+    print i, a, x
 </code> </code>
  
-On utilise pour ce test un décorateur supplémentaire, tempsexec, qui affiche le temps d'exécution de la fonction décorée. +On utilise pour ce test un décorateur supplémentaire, tempsexec, qui calcule et affiche le temps d'exécution de la fonction décorée. 
  
 Le principe du test est simple:  Le principe du test est simple: 
  
-  * on a une fonction calcul() qui est artificiellement longue grâce au sleep(1) (1 seconde)+  * on a une fonction calcul() qui est artificiellement longue grâce au sleep(1) (1 seconde) et qui est décorée par le decocache et par tempsexec.
  
   * on va calculer cette fonction 100 fois en ayant comme argument une valeur au hasard comprise entre 1 et 20   * on va calculer cette fonction 100 fois en ayant comme argument une valeur au hasard comprise entre 1 et 20
  
-Pour un calcul donné, si l'argument 'a' n'est pas trouvé dans le cache, le calcul prend 1 seconde. Si par contre l'argument a est trouvé, le résultat est renvoyé sans passer par la fonction, ce qui prend... moins de 0.00001 seconde!+Pour un calcul donné, si l'argument 'a' n'est pas trouvé dans le cache, le calcul prend 1 seconde. Si par contre l'argument a est trouvé dans le cache, le résultat est renvoyé sans passer par la fonction, ce qui prend... moins de 1/1000 de seconde!
  
-Au fur et à mesure des calculs, il est de plus en plus probable de trouver l'argument dans le cache, et le temps diminue rapidement. Les derniers calculs sont quasi instantanés.+Au fur et à mesure des 100 calculs, il est de plus en plus probable de trouver l'argument dans le cache, et le temps diminue rapidement.  
 + 
 +Les derniers calculs sont quasi instantanés.
  
  
decorateurs_cache.txt · Dernière modification: 2011/04/04 20:56 de tyrtamos