Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
51c3f34
Add heatmap visualization to Tachyon sampling profiler
pablogsal Oct 27, 2025
02a379d
fixup! Add heatmap visualization to Tachyon sampling profiler
pablogsal Oct 29, 2025
e1ef737
Add scroll to caller/callee menu
pablogsal Oct 29, 2025
fd62937
Merge upstream/main into heatmap branch
pablogsal Nov 24, 2025
00cd05e
fixup! Merge upstream/main into heatmap branch
pablogsal Nov 24, 2025
4fa26c0
UX improvements
pablogsal Nov 24, 2025
ece3617
Imrpovements
pablogsal Nov 24, 2025
aa08ce0
MOAR refactor
pablogsal Nov 24, 2025
09b132d
fixup! MOAR refactor
pablogsal Nov 24, 2025
9a42111
fixup! fixup! MOAR refactor
pablogsal Nov 24, 2025
cca0057
Merge remote-tracking branch 'upstream/main' into heatmap
pablogsal Nov 30, 2025
d726488
use toggles
pablogsal Nov 30, 2025
b695f7a
Respect the self-time toggle in hot only
pablogsal Dec 1, 2025
87037d8
Merge remote-tracking branch 'upstream/main' into heatmap
pablogsal Dec 1, 2025
87838a7
gh-138122: Small fixes to the new tachyon UI
pablogsal Dec 1, 2025
27187d8
Merge remote-tracking branch 'upstream/main' into heatmap
pablogsal Dec 1, 2025
07835e9
Restyle heatmap like flamegraph
pablogsal Dec 1, 2025
85b5f29
Refactor css into common files
pablogsal Dec 1, 2025
2f9f433
Update UI colors and fix intensity legend
ivonastojanovic Dec 1, 2025
42bc9a9
Fix minimap with hot only toggle
pablogsal Dec 2, 2025
0ca6850
Update Lib/profiling/sampling/heatmap_collector.py
pablogsal Dec 2, 2025
446f762
Update makefile
pablogsal Dec 2, 2025
8b78959
Collapse 'other'
pablogsal Dec 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Lib/profiling/sampling/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
from .collector import Collector
from .pstats_collector import PstatsCollector
from .stack_collector import CollapsedStackCollector
from .heatmap_collector import HeatmapCollector
from .gecko_collector import GeckoCollector
from .string_table import StringTable

__all__ = ("Collector", "PstatsCollector", "CollapsedStackCollector", "GeckoCollector", "StringTable")
__all__ = ("Collector", "PstatsCollector", "CollapsedStackCollector", "HeatmapCollector", "GeckoCollector", "StringTable")
22 changes: 22 additions & 0 deletions Lib/profiling/sampling/_css_utils.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
import importlib.resources


def get_combined_css(component: str) -> str:
template_dir = importlib.resources.files(__package__)

base_css = (template_dir / "_shared_assets" / "base.css").read_text(encoding="utf-8")

if component == "flamegraph":
component_css = (
template_dir / "_flamegraph_assets" / "flamegraph.css"
).read_text(encoding="utf-8")
elif component == "heatmap":
component_css = (template_dir / "_heatmap_assets" / "heatmap.css").read_text(
encoding="utf-8"
)
else:
raise ValueError(
f"Unknown component: {component}. Expected 'flamegraph' or 'heatmap'."
)

return f"{base_css}\n\n{component_css}"
Loading
Loading