Skip to content

Commit 9b17680

Browse files
Rename module_name/name_module to module/label in flamegraph data
1 parent 44599a4 commit 9b17680

2 files changed

Lines changed: 22 additions & 29 deletions

File tree

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";
@@ -322,7 +322,7 @@ function createPythonTooltip(data) {
322322

323323
const funcname = resolveString(d.data.funcname) || resolveString(d.data.name);
324324
const filename = resolveString(d.data.filename) || "";
325-
const moduleName = resolveString(d.data.module_name) || "";
325+
const moduleName = resolveString(d.data.module) || "";
326326
const displayName = escapeHtml(useModuleNames ? (moduleName || filename) : filename);
327327
const isSpecialFrame = filename === "~";
328328

@@ -609,7 +609,7 @@ function createFlamegraph(tooltip, rootValue, data) {
609609
.minFrameSize(1)
610610
.tooltip(tooltip)
611611
.inverted(true)
612-
.getName(d => resolveString(useModuleNames ? d.data.name_module : d.data.name) || resolveString(d.data.name) || '')
612+
.getName(d => resolveString(useModuleNames ? d.data.label : d.data.name) || resolveString(d.data.name) || '')
613613
.setColorMapper(function (d) {
614614
if (d.depth === 0) return 'transparent';
615615

@@ -652,7 +652,7 @@ function updateSearchHighlight(searchTerm, searchInput) {
652652
const name = resolveString(d.data.name) || "";
653653
const funcname = resolveString(d.data.funcname) || "";
654654
const filename = resolveString(d.data.filename) || "";
655-
const moduleName = resolveString(d.data.module_name) || "";
655+
const moduleName = resolveString(d.data.module) || "";
656656
const displayName = getDisplayName(moduleName, filename);
657657
const lineno = d.data.lineno;
658658
const term = searchTerm.toLowerCase();
@@ -1071,7 +1071,7 @@ function populateStats(data) {
10711071

10721072
let filename = resolveString(node.filename);
10731073
let funcname = resolveString(node.funcname);
1074-
let moduleName = resolveString(node.module_name);
1074+
let moduleName = resolveString(node.module);
10751075

10761076
if (!filename || !funcname) {
10771077
const nameStr = resolveString(node.name);
@@ -1103,14 +1103,14 @@ function populateStats(data) {
11031103
existing.directPercent = (existing.directSamples / totalSamples) * 100;
11041104
if (directSamples > existing.maxSingleSamples) {
11051105
existing.filename = filename;
1106-
existing.module_name = moduleName;
1106+
existing.module = moduleName;
11071107
existing.lineno = node.lineno || '?';
11081108
existing.maxSingleSamples = directSamples;
11091109
}
11101110
} else {
11111111
functionMap.set(funcKey, {
11121112
filename: filename,
1113-
module_name: moduleName,
1113+
module: moduleName,
11141114
lineno: node.lineno || '?',
11151115
funcname: funcname,
11161116
directSamples,
@@ -1145,7 +1145,7 @@ function populateStats(data) {
11451145
const h = hotSpots[i];
11461146
const filename = h.filename || 'unknown';
11471147
const lineno = h.lineno ?? '?';
1148-
const moduleName = h.module_name || 'unknown';
1148+
const moduleName = h.module || 'unknown';
11491149
const isSpecialFrame = filename === '~' && (lineno === 0 || lineno === '?');
11501150

11511151
let funcDisplay = h.funcname || 'unknown';
@@ -1173,7 +1173,7 @@ function populateStats(data) {
11731173
if (card) {
11741174
if (i < hotSpots.length && hotSpots[i]) {
11751175
const h = hotSpots[i];
1176-
const moduleName = h.module_name || 'unknown';
1176+
const moduleName = h.module || 'unknown';
11771177
const filename = h.filename || 'unknown';
11781178
const displayName = getDisplayName(moduleName, filename);
11791179
const hasValidLocation = displayName !== 'unknown' && h.lineno !== '?';
@@ -1309,12 +1309,12 @@ function accumulateInvertedNode(parent, stackFrame, leaf, isDifferential) {
13091309
if (!parent.children[key]) {
13101310
const newNode = {
13111311
name: stackFrame.name,
1312-
name_module: stackFrame.name_module,
1312+
label: stackFrame.label,
13131313
value: 0,
13141314
self: 0,
13151315
children: {},
13161316
filename: stackFrame.filename,
1317-
module_name: stackFrame.module_name,
1317+
module: stackFrame.module,
13181318
lineno: stackFrame.lineno,
13191319
funcname: stackFrame.funcname,
13201320
source: stackFrame.source,
@@ -1409,7 +1409,7 @@ function generateInvertedFlamegraph(data) {
14091409

14101410
const invertedRoot = {
14111411
name: data.name,
1412-
name_module: data.name_module,
1412+
label: data.label,
14131413
value: data.value,
14141414
children: {},
14151415
stats: data.stats,
@@ -1437,14 +1437,7 @@ function toggleInvert() {
14371437
function togglePathDisplay() {
14381438
useModuleNames = !useModuleNames;
14391439
updateToggleUI('toggle-path-display', useModuleNames);
1440-
const dataToRender = isInverted ? invertedData : normalData;
1441-
const filteredData = currentThreadFilter !== 'all'
1442-
? filterDataByThread(dataToRender, parseInt(currentThreadFilter))
1443-
: dataToRender;
1444-
1445-
const tooltip = createPythonTooltip(filteredData);
1446-
const chart = createFlamegraph(tooltip, filteredData.value);
1447-
renderFlamegraph(chart, filteredData);
1440+
updateFlamegraphView();
14481441
}
14491442

14501443
// ============================================================================

Lib/profiling/sampling/stack_collector.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -224,18 +224,18 @@ 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
"self": node.get("self", 0),
236236
"children": [],
237237
"filename": filename_idx,
238-
"module_name": module_name_idx,
238+
"module": module_idx,
239239
"lineno": func[1],
240240
"funcname": funcname_idx,
241241
"threads": sorted(list(node.get("threads", set()))),

0 commit comments

Comments
 (0)