Sampling profiler fails to display user-defined function in IDLE when started with the run command
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
This is my simple test running IDLE at profiler startup (sudo as I'm running on a Mac, YMMV):
sudo -E ./python.exe -m profiling.sampling run -a --realtime-stats -d 99999 --live -m idlelib
As expected, I can also attach to a running IDLE session:
sudo -E ./python.exe -m profiling.sampling attach -a --realtime-stats -d 99999 --live <PID>
The two versions display things differently. If I attach to a running IDLE, define fib(), then call it with a large n (say, 200), it will run for a while before returning a result. I can see the recursive calls to fib in the display.
If I use the run command instead, I never see fib show in the display. Instead, I see something like this:
It appears all the samples in fib are credited to Misc.mainloop. I know the function is executing, given that small-n calls return quickly with the correct result, but shouldn't fib show up in the display when called with a large value for n if I use the run command to start IDLE?
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez la différence entre les commandes profiling.sampling run et attach sur idlelib, en utilisant un appel récursif à fib() comme indiqué. Commencez par suivre la manière dont profiling.sampling gère le chemin run et comparez les échantillons affichés avec attach ; le travail est terminé lorsque des fonctions définies par l’utilisateur telles que fib apparaissent dans l’affichage de run au lieu d’être attribuées à Misc.mainloop.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- devtools, performance
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100