cpython/Lib/profiling/sampling
László Kiss Kollár 9587726a3e
gh-149430: Fix edge-cases in profiling.sampling outputs (#149431)
The line highlights on the heatmap are driven by the URL hash and the
`:target` selector. When clicking a caller/callee link for the line that
was already selected, the hash doesn't change, so the browser keeps the
existing target state and doesn't restart the animation. Due to this the
highlight only works the first time.

With this fix, line navigation goes through JavaScript. If the target
URL already points to the current location, the highlight is replayed by
clearing the animation, forcing style recalculation, and restoring it.

The `baseline_self` variable isn't initialized for structural elided
roots. This variable is accessed later unconditionally and leads to a
crash.

The child process ends up being invoked with `--diff_flamegraph` instead
of the correct argument.
2026-05-09 14:05:46 +01:00
..
_assets gh-140727: Update tachyon logo (#148965) 2026-04-25 22:27:11 +01:00
_flamegraph_assets gh-142927: Show module names instead of file paths in flamegraph (#146040) 2026-04-29 10:00:07 +01:00
_heatmap_assets gh-149430: Fix edge-cases in profiling.sampling outputs (#149431) 2026-05-09 14:05:46 +01:00
_shared_assets gh-142927: Detect system theme in flame graph like in heatmap (#144885) 2026-03-10 13:38:48 +02:00
_vendor gh-135953: Add flamegraph reporter to sampling profiler (#138715) 2025-09-09 23:06:45 +01:00
live_collector gh-144384: Lazily import _colorize (#149318) 2026-05-06 16:07:43 +00:00
__init__.py gh-146256: Add --jsonl collector to the profiling.sampling (#146257) 2026-05-05 00:44:37 +00:00
__main__.py gh-142654: show the clear error message when sampling on an unknown PID in tachyon (#142655) 2025-12-17 14:15:22 +00:00
_child_monitor.py gh-138122: Replace --interval with --sampling-rate (#143085) 2025-12-24 13:46:33 +00:00
_css_utils.py gh-140677 Add heatmap visualization to Tachyon sampling profiler (#140680) 2025-12-02 20:33:40 +00:00
_format_utils.py gh-142927: Tachyon: Comma separate thousands and fix singular/plurals (#142934) 2025-12-22 14:15:57 +00:00
_sync_coordinator.py gh-143040: Exit taychon live mode gracefully and display profiled script errors (#143101) 2025-12-27 00:36:15 +00:00
binary_collector.py gh-138122: Allow tachyon to write and read binary output (#142730) 2025-12-22 23:57:20 +00:00
binary_reader.py gh-146256: Add --jsonl collector to the profiling.sampling (#146257) 2026-05-05 00:44:37 +00:00
cli.py gh-149430: Fix edge-cases in profiling.sampling outputs (#149431) 2026-05-09 14:05:46 +01:00
collector.py gh-146256: Add --jsonl collector to the profiling.sampling (#146257) 2026-05-05 00:44:37 +00:00
constants.py gh-146256: Add --jsonl collector to the profiling.sampling (#146257) 2026-05-05 00:44:37 +00:00
dump.py gh-149296: Add dump subcommand to sampling profiler for one-shot stack snapshots (#149297) 2026-05-04 01:02:33 +01:00
errors.py gh-142654: show the clear error message when sampling on an unknown PID in tachyon (#142655) 2025-12-17 14:15:22 +00:00
gecko_collector.py gh-135953: Properly obtain main thread identifier in Gecko Collector (#146045) 2026-03-22 18:53:00 +00:00
heatmap_collector.py gh-142927: Show module names instead of file paths in flamegraph (#146040) 2026-04-29 10:00:07 +01:00
jsonl_collector.py gh-146256: Add --jsonl collector to the profiling.sampling (#146257) 2026-05-05 00:44:37 +00:00
module_utils.py gh-142927: Show module names instead of file paths in flamegraph (#146040) 2026-04-29 10:00:07 +01:00
opcode_utils.py gh-138122: Make the tachyon profiler opcode-aware (#142394) 2025-12-11 03:41:47 +00:00
pstats_collector.py gh-144384: Lazily import _colorize (#149318) 2026-05-06 16:07:43 +00:00
sample.py gh-144384: Lazily import _colorize (#149318) 2026-05-06 16:07:43 +00:00
stack_collector.py gh-149430: Fix edge-cases in profiling.sampling outputs (#149431) 2026-05-09 14:05:46 +01:00
string_table.py gh-135953: Reduce memory usage of stack collectors (#138875) 2025-09-14 23:47:14 +01:00