1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| #!/usr/bin/env python3
# coding: utf-8
import random
import timeit
import re
from functools import partial
# Les fonctions à tester
def fct_in(l):
t="abcdefghijklmnopqrstuvwxyz"
for x in l: x in t
def fct_eq(l):
for x in l: "a" <= x <= "z"
def fct_re(l):
t="abcdefghijklmnopqrstuvwxyz"
for x in l: re.search(x, t)
fct={
"in" : fct_in,
"equal" : fct_eq,
"regex" : fct_re,
}
# Initialisation random
random.seed()
# Les données à traiter (début, milieu, fin, autre)
data="amz0"
# Le nombre de répétitions (les moyennes se feront sur cette valeur)
repeat=100
# Appel des fonctions dans un ordre aléatoire et affichage du chrono
print("start=%s, repeat=%d" % (data, repeat))
for (k, v) in random.sample(fct.items(), len(fct)):
t=timeit.Timer(partial(v, data)).repeat(repeat=repeat, number=100_000)
print("%s: min=%f, max=%f, avg=%f" % (k, min(t), max(t), sum(t)/len(t)))
# for |
Partager