17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Rapport sur les performances<br />

Bonnes pratiques et optimisation du code<br />

CHAPITRE 13<br />

Les tests unitaires exécutent, s’ils sont bien faits, la totalité du code d’un programme.<br />

Un module comme hotshot peut donc s’appuyer sur ces tests pour générer un rapport<br />

complet sur les performances.<br />

Ce profiling global permet de repérer les problèmes de performances ou les temps<br />

anormaux.<br />

Tests cPickle profilés<br />

$ python auditperfs.py<br />

2001 function calls in 0.020 CPU seconds<br />

Ordered by: internal time<br />

ncalls tottime percall cumtime percall filename:lineno(function)<br />

1 0.009 0.009 0.020 0.020<br />

auditperfs.py:60(test_boucle)<br />

1000 0.007 0.000 0.011 0.000<br />

auditperfs.py:35(test_dump_et_load)<br />

1000 0.004 0.000 0.004 0.000<br />

auditperfs.py:28(_genere_instance)<br />

0 0.000 0.000 profile:0(profiler)<br />

..<br />

----------------------------------------------------------------------<br />

Ran 2 tests in 1.002s<br />

OK<br />

Dans cette version du test de cPickle du chapitre précédent, l’exécution des tests est<br />

profilée par le biais d’un decorator spécialisé, intégrant un appel au profiler.<br />

Tests de performance ciblés<br />

Pour les portions du code à surveiller étroitement, des tests de performance ciblés<br />

peuvent être mis en place.<br />

Le principe est relativement similaire aux tests unitaires mais les assertions portent<br />

cette fois-ci sur le temps écoulé pendant le test.<br />

481

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!