Weekly backup.

This commit is contained in:
2022-06-04 12:57:39 +02:00
parent e552583393
commit 015b896f65
68 changed files with 3530 additions and 27 deletions

View File

@@ -0,0 +1,96 @@
:PROPERTIES:
:ID: 4e351659-8a96-44af-bacb-f548ea35913e
:mtime: 20220416113532
:ctime: 20220416112952
:END:
#+title: timethese
* Introduction
* Package permettant de mesurer les temps nécessaires à l'exécution de plusieurs méthodes et de les comparer.
* Approche en 3 étapes :
* Définition des méthodes à benchmarker,
* Préparation et exécution des tests (usage de la classe /cmpthese/),
* Formattage des résultas (pretty print).
* Installation
#+BEGIN_SRC shell
pip install timethese
#+END_SRC
* Exemple
#+BEGIN_SRC python :results output
from timethese import cmpthese, pprint_cmp, timethese
xs = range(10)
# 1. DEFINE FUNCTIONS
def map_hex():
list(map(hex, xs))
def list_compr_hex():
list([hex(x) for x in xs])
def map_lambda():
list(map(lambda x: x + 2, xs))
def map_lambda_fn():
fn = lambda x: x + 2
list(map(fn, xs))
def list_compr_nofn():
list([x + 2 for x in xs])
# 2. FEED THE FUNCTIONS TO CMPTHESE
# AS DICT:
cmp_res_dict = cmpthese(
10000,
{
"map_hex": map_hex,
"list_compr_hex": list_compr_hex,
"map_lambda": map_lambda,
"map_lambda_fn": map_lambda_fn,
"list_compr_nofn": list_compr_nofn,
},
repeat=3,
)
# OR AS LIST:
cmp_res_list = cmpthese(
10000, [map_hex, list_compr_hex, map_lambda, map_lambda_fn, list_compr_nofn,], repeat=3,
)
# 3. PRETTY PRINT THE RESULTS
print(pprint_cmp(cmp_res_dict))
print(pprint_cmp(cmp_res_list))
#+END_SRC
#+RESULTS:
#+begin_example
Rate list_compr_nofn map_hex map_lambda map_lambda_fn list_compr_hex
list_compr_nofn 1889389/s . 21% 42% 45% 68%
map_hex 1565635/s -17% . 18% 21% 40%
map_lambda 1328914/s -30% -15% . 2% 18%
map_lambda_fn 1298638/s -31% -17% -2% . 16%
list_compr_hex 1121963/s -41% -28% -16% -14% .
Rate 4.list_compr_nofn 0.map_hex 3.map_lambda_fn 2.map_lambda 1.list_compr_hex
4.list_compr_nofn 1836243/s . 17% 37% 38% 73%
0.map_hex 1568271/s -15% . 17% 18% 47%
3.map_lambda_fn 1336453/s -27% -15% . 0% 26%
2.map_lambda 1334377/s -27% -15% -0% . 25%
1.list_compr_hex 1063984/s -42% -32% -20% -20% .
#+end_example
* Références
* [[https://github.com/jwbargsten/python-timethese][Github]]