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.

Timeit par bloc ?

+2 votes

1-Comment faire un timeit d'un script pour avoir le détail de la chronophagie de chaque bloc, plutôt que de l' ensemble du script ?

Faut il bidouiller avec pdb ou y ' a t il un module qui fait ça facilement ?

Une extraction manuelle bloc par bloc peut être laborieuse, casse tête, voire impossible.

2-Même question avec en plus le calcul parallèle...

demandé 5-Nov-2015 par buffalo974 (2,632 points)

3 Réponses

+4 votes
 
Meilleure réponse

Regarde du coté du module profile, il contient ce qu'il faut pour ce que tu veux faire.

Je ne pense pas que le calcul parallèle pose de problème particulier - à condition de lancer le profiler au bon moment, sauf peut-être si tu veux des stats par thread.

répondu 5-Nov-2015 par yoch (2,312 points)
sélectionné 6-Nov-2015 par buffalo974

cProfile parasite moins les temps d'execution du script mesuré que Profile, soit dit en passant.

Clairement, mais profile et cProfile, c'est le même combat après tout. Il suffit de regarder le lien que j'ai mis pour trouver les 2.

+1 vote

Comme dit par yoch, il faut sans doute envisager de faire du profilage avec profile ou cProfile.

Je rajoute juste qu'il existe des outils pour visualiser le résultat du profilage, ce que je trouve bien plus commode et agréable. En voici 3 :

  • RunSnakeRun est bien, simple et efficace mais il n'a pas été migré vers python3
  • SnakeViz est plus moderne (pas testé)
  • kcachegrind est un très bon outil fait pour d'autres langages comme le C, il est possible de l'utiliser grâce à pyprof2calltree
répondu 5-Nov-2015 par bubulle (2,106 points)
edité 6-Nov-2015 par bubulle
+1 vote

Pour du profiling multithread, je te conseille Yappi : https://bitbucket.org/sumerc/yappi

Tu peux utiliser les outils proposés par bubulle pour visualiser les résultats.

répondu 6-Nov-2015 par dsy73 (190 points)
...