Skip to content

Commit 518c923

Browse files
Rename module_name/name_module to module/label in flamegraph data
1 parent a5cda5b commit 518c923

File tree

2 files changed

+22
-29
lines changed

2 files changed

+22
-29
lines changed

Lib/profiling/sampling/_flamegraph_assets/flamegraph.js

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ function resolveStringIndices(node, table) {
6565
if (typeof resolved.funcname === 'number') {
6666
resolved.funcname = resolveString(resolved.funcname, table);
6767
}
68-
if (typeof resolved.module_name === 'number') {
69-
resolved.module_name = resolveString(resolved.module_name);
68+
if (typeof resolved.module === 'number') {
69+
resolved.module = resolveString(resolved.module, table);
7070
}
71-
if (typeof resolved.name_module === 'number') {
72-
resolved.name_module = resolveString(resolved.name_module);
71+
if (typeof resolved.label === 'number') {
72+
resolved.label = resolveString(resolved.label, table);
7373
}
7474

7575
if (Array.isArray(resolved.source)) {
@@ -90,7 +90,7 @@ function escapeHtml(str) {
9090
return str.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
9191
}
9292

93-
// Get display path based on user preference (module name or basename)
93+
// Get display path based on user preference (module or full path)
9494
function getDisplayName(moduleName, filename) {
9595
if (useModuleNames) {
9696
return moduleName || filename;
@@ -248,7 +248,7 @@ function setupLogos() {
248248
function updateStatusBar(nodeData, rootValue) {
249249
const funcname = resolveString(nodeData.funcname) || resolveString(nodeData.name) || "--";
250250
const filename = resolveString(nodeData.filename) || "";
251-
const moduleName = resolveString(nodeData.module_name) || "";
251+
const moduleName = resolveString(nodeData.module) || "";
252252
const lineno = nodeData.lineno;
253253
const timeMs = (nodeData.value / 1000).toFixed(2);
254254
const percent = rootValue > 0 ? ((nodeData.value / rootValue) * 100).toFixed(1) : "0.0";
@@ -320,7 +320,7 @@ function createPythonTooltip(data) {
320320

321321
const funcname = resolveString(d.data.funcname) || resolveString(d.data.name);
322322
const filename = resolveString(d.data.filename) || "";
323-
const moduleName = resolveString(d.data.module_name) || "";
323+
const moduleName = resolveString(d.data.module) || "";
324324
const displayName = escapeHtml(useModuleNames ? (moduleName || filename) : filename);
325325
const isSpecialFrame = filename === "~";
326326

@@ -602,7 +602,7 @@ function createFlamegraph(tooltip, rootValue, data) {
602602
.minFrameSize(1)
603603
.tooltip(tooltip)
604604
.inverted(true)
605-
.getName(d => resolveString(useModuleNames ? d.data.name_module : d.data.name) || resolveString(d.data.name) || '')
605+
.getName(d => resolveString(useModuleNames ? d.data.label : d.data.name) || resolveString(d.data.name) || '')
606606
.setColorMapper(function (d) {
607607
if (d.depth === 0) return 'transparent';
608608

@@ -645,7 +645,7 @@ function updateSearchHighlight(searchTerm, searchInput) {
645645
const name = resolveString(d.data.name) || "";
646646
const funcname = resolveString(d.data.funcname) || "";
647647
const filename = resolveString(d.data.filename) || "";
648-
const moduleName = resolveString(d.data.module_name) || "";
648+
const moduleName = resolveString(d.data.module) || "";
649649
const displayName = getDisplayName(moduleName, filename);
650650
const lineno = d.data.lineno;
651651
const term = searchTerm.toLowerCase();
@@ -1064,7 +1064,7 @@ function populateStats(data) {
10641064

10651065
let filename = resolveString(node.filename);
10661066
let funcname = resolveString(node.funcname);
1067-
let moduleName = resolveString(node.module_name);
1067+
let moduleName = resolveString(node.module);
10681068

10691069
if (!filename || !funcname) {
10701070
const nameStr = resolveString(node.name);
@@ -1096,14 +1096,14 @@ function populateStats(data) {
10961096
existing.directPercent = (existing.directSamples / totalSamples) * 100;
10971097
if (directSamples > existing.maxSingleSamples) {
10981098
existing.filename = filename;
1099-
existing.module_name = moduleName;
1099+
existing.module = moduleName;
11001100
existing.lineno = node.lineno || '?';
11011101
existing.maxSingleSamples = directSamples;
11021102
}
11031103
} else {
11041104
functionMap.set(funcKey, {
11051105
filename: filename,
1106-
module_name: moduleName,
1106+
module: moduleName,
11071107
lineno: node.lineno || '?',
11081108
funcname: funcname,
11091109
directSamples,
@@ -1138,7 +1138,7 @@ function populateStats(data) {
11381138
const h = hotSpots[i];
11391139
const filename = h.filename || 'unknown';
11401140
const lineno = h.lineno ?? '?';
1141-
const moduleName = h.module_name || 'unknown';
1141+
const moduleName = h.module || 'unknown';
11421142
const isSpecialFrame = filename === '~' && (lineno === 0 || lineno === '?');
11431143

11441144
let funcDisplay = h.funcname || 'unknown';
@@ -1166,7 +1166,7 @@ function populateStats(data) {
11661166
if (card) {
11671167
if (i < hotSpots.length && hotSpots[i]) {
11681168
const h = hotSpots[i];
1169-
const moduleName = h.module_name || 'unknown';
1169+
const moduleName = h.module || 'unknown';
11701170
const filename = h.filename || 'unknown';
11711171
const displayName = getDisplayName(moduleName, filename);
11721172
const hasValidLocation = displayName !== 'unknown' && h.lineno !== '?';
@@ -1302,11 +1302,11 @@ function accumulateInvertedNode(parent, stackFrame, leaf, isDifferential) {
13021302
if (!parent.children[key]) {
13031303
const newNode = {
13041304
name: stackFrame.name,
1305-
name_module: stackFrame.name_module,
1305+
label: stackFrame.label,
13061306
value: 0,
13071307
children: {},
13081308
filename: stackFrame.filename,
1309-
module_name: stackFrame.module_name,
1309+
module: stackFrame.module,
13101310
lineno: stackFrame.lineno,
13111311
funcname: stackFrame.funcname,
13121312
source: stackFrame.source,
@@ -1400,7 +1400,7 @@ function generateInvertedFlamegraph(data) {
14001400

14011401
const invertedRoot = {
14021402
name: data.name,
1403-
name_module: data.name_module,
1403+
label: data.label,
14041404
value: data.value,
14051405
children: {},
14061406
stats: data.stats,
@@ -1428,14 +1428,7 @@ function toggleInvert() {
14281428
function togglePathDisplay() {
14291429
useModuleNames = !useModuleNames;
14301430
updateToggleUI('toggle-path-display', useModuleNames);
1431-
const dataToRender = isInverted ? invertedData : normalData;
1432-
const filteredData = currentThreadFilter !== 'all'
1433-
? filterDataByThread(dataToRender, parseInt(currentThreadFilter))
1434-
: dataToRender;
1435-
1436-
const tooltip = createPythonTooltip(filteredData);
1437-
const chart = createFlamegraph(tooltip, filteredData.value);
1438-
renderFlamegraph(chart, filteredData);
1431+
updateFlamegraphView();
14391432
}
14401433

14411434
// ============================================================================

Lib/profiling/sampling/stack_collector.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,17 +224,17 @@ def convert_children(children, min_samples, path_info):
224224
funcname_idx = self._string_table.intern(func[2])
225225
module_name = self._get_module_name(func[0], path_info)
226226

227-
module_name_idx = self._string_table.intern(module_name)
227+
module_idx = self._string_table.intern(module_name)
228228
name_idx = self._string_table.intern(self._format_function_name(func))
229-
name_module_idx = self._string_table.intern(self._format_module_name(func, module_name))
229+
label_idx = self._string_table.intern(self._format_module_name(func, module_name))
230230

231231
child_entry = {
232232
"name": name_idx,
233-
"name_module": name_module_idx,
233+
"label": label_idx,
234234
"value": samples,
235235
"children": [],
236236
"filename": filename_idx,
237-
"module_name": module_name_idx,
237+
"module": module_idx,
238238
"lineno": func[1],
239239
"funcname": funcname_idx,
240240
"threads": sorted(list(node.get("threads", set()))),

0 commit comments

Comments
 (0)