TimeTime est une classe qui permet d'afficher le temps d'exécution de fonctions, également de les comparer entre eux
Project description
TimeTime
Résumé
TimeTime est une classe qui permet d’afficher le temps d’exécution de fonctions, également de les comparer entre eux. TimTime retourne le temps d’exécution total pour <loops> boucles (par défaut 10000) et le temps moyen par boucle.
TimeTime est simple à utiliser. Il est basé sur les modules built-in time et re.
Usage
Les fonctions à comparer doivent être sans arguments. Il est fortement recommandé, pour la lisibilité des résultats de l'analyse, qu'elle ne comporte pas d'impressions écran de résultats de la fonction elle-même (si ça doit être le cas, voyez une alternative pour éviter un "print" dans l'exemple).
from timetime import TimeTime
def fonction1():
...
def fonction2():
...
f1 = TimeTime(fonction1)
f2 = TimeTime(fonction2)
print(f1)
print(f2)
print(f1 == f2)
etc.
TimeTime.loops = 1000
TimeTime.version()
TimeTime.demo()
etc.
Exemple
cet exemple vous montre également comment contourner le cas où vos fonctions de test doivent envoyer des impressions. On les renvoie dans un fichier /dev/null (nul - je crois, sous windows)
import os
from timetime import TimeTime as tt
def fonc1():
with open(os.devnull, 'w') as f:
f.write('b'+'c')
a = 'b'+'c'
def fonc2():
with open(os.devnull, 'w') as f:
f.write(a)
f1 = tt(fonc1)
f2 = tt(fonc2)
# quelle est la fonction la plus rapide ?
for i in range(3):
print("--- phase", i, "---")
print(f1 == f2)
Commentaires à propos de l'exemple
Les résultats:
--- phase 0 ---
fonc1() == fonc2()
------------------------------------------
fonc1(), 10000 loops.
Total runtime = 0.2219841480255127
Mean loop = 2.219841480255127e-05
------------------------------------------
------------------------------------------
fonc2(), 10000 loops.
Total runtime = 0.21685266494750977
Mean loop = 2.1685266494750976e-05
------------------------------------------
--- phase 1 ---
fonc1() == fonc2()
------------------------------------------
fonc1(), 10000 loops.
Total runtime = 0.21837949752807617
Mean loop = 2.1837949752807617e-05
------------------------------------------
------------------------------------------
fonc2(), 10000 loops.
Total runtime = 0.216231107711792
Mean loop = 2.16231107711792e-05
------------------------------------------
--- phase 2 ---
fonc1() == fonc2()
------------------------------------------
fonc1(), 10000 loops.
Total runtime = 0.21810102462768555
Mean loop = 2.1810102462768555e-05
------------------------------------------
------------------------------------------
fonc2(), 10000 loops.
Total runtime = 0.21857643127441406
Mean loop = 2.1857643127441406e-05
------------------------------------------
que constate-ton ?
Que l'avantage de concatener préalablement une seule fois n'est pas du tout évident sur le fait de concaténer l'équivalent de la chainea
à chaque tour de boucle.
Ces comparaisons entre diverses implémentations ou diverses fonctions ne sont pas toujours aussi proches; voyez timetime_demo.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file timetime-1.0.tar.gz
.
File metadata
- Download URL: timetime-1.0.tar.gz
- Upload date:
- Size: 4.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb63facbb90b9edeac898dc46bb548e2c0a86b6c18938468759d4f41399e40bc |
|
MD5 | c9d501cda0dba1448b8ce9bea433c86a |
|
BLAKE2b-256 | b885985250a4c5eeae56308a531d678b637a4a4dcf4ed8d9235a76e7a74f1041 |
File details
Details for the file timetime-1.0-py3-none-any.whl
.
File metadata
- Download URL: timetime-1.0-py3-none-any.whl
- Upload date:
- Size: 4.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 918634a42d4c5e8e7dd0a87560a89940e46b846cf2549a0861dcd156f433bef2 |
|
MD5 | 6ea0ac27c3ab5094f41ef984dee15b9b |
|
BLAKE2b-256 | ec47fba556812831d15fd7aece46be1aa95bcf0f7c16ec485e9fd1190d8121fe |