mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
The sampling profiler counted every frame occurrence in a stack for cumulative statistics. For recursive functions appearing N times in a stack, this meant counting N instead of 1, causing cumul% to exceed 100%. A function recursing 500 deep in every sample would show 50000% cumulative presence. The fix tracks seen locations per sample using a reused set, ensuring each unique (filename, lineno, funcname) is counted once per sample. This matches the expected semantics: cumul% represents the percentage of samples where a function appeared on the stack, not the sum of all frame occurrences. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| _live_collector_helpers.py | ||
| helpers.py | ||
| mocks.py | ||
| test_advanced.py | ||
| test_async.py | ||
| test_cli.py | ||
| test_collectors.py | ||
| test_integration.py | ||
| test_live_collector_core.py | ||
| test_live_collector_interaction.py | ||
| test_live_collector_ui.py | ||
| test_modes.py | ||
| test_profiler.py | ||
| test_trend_tracker.py | ||