Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Benchmarker son programme

+6 votes

J'aurais besoin de savoir s'il existe des outils pour "benchmarker" son programme. J'entends par là avoir des infos comme le temps CPU utilisé, la RAM prise, potentiellement le temps d’exécution des fonctions, etc.

Comment faites-vous quand vous voulez commencer à diffuser votre programme, et que vous faites la chasse à l'optimisation ?

demandé 5-Fev-2015 par Rififi (532 points)
reclassée 6-Fev-2015 par Rififi

1 Réponse

+4 votes
 
Meilleure réponse

Le terme que tu cherches est "profiling".

La manière la plus simple est de faire :

import timeit
print(timeit.timeit("fonction()", setup="from module import fonction"))

Néanmoins c'est limité. Tu trouveras un guide complet sur le profiling de ton programme ici :

http://www.huyng.com/posts/python-performance-analysis/

Pas mal de gens utilise un mélange de cprofile et runsnakerun pour le côté CPU (http://www.vrplumber.com/programming/runsnakerun/)
Et pour la mémoire : memory_profiler : https://pypi.python.org/pypi/memory_profiler

répondu 6-Fev-2015 par Sam (4,984 points)
sélectionné 23-Fev-2015 par Rififi

Et pour profiler la mémoire de manière un peu plus personnalisé, il y a pytracemalloc.

...