Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
00a5101
Move paddings inside the tree header cells.
mstange May 6, 2026
98fc82d
Column sorting
mstange Mar 31, 2026
4e80672
Split getSelfAndTotal.
mstange Mar 31, 2026
b92ee4b
Add a function list panel.
mstange Nov 27, 2024
283f732
Implement activity graph highlighting for function list
mstange Apr 3, 2026
bc72bf5
Implement function list context menu.
mstange Apr 3, 2026
b0ce794
Implement transform shortcut keys for function list
mstange Apr 3, 2026
758d7b5
Scroll selection into view when applying/unapplying transforms
mstange Apr 3, 2026
de1c681
Select self function when clicking in the activity graph
mstange Apr 3, 2026
5da844c
Select first row in the function list on mount.
mstange Apr 4, 2026
5580559
Implement double-clicking to show the bottom box in the function list.
mstange Apr 4, 2026
366040f
Pass callNodeInfo to handleCallNodeTransformShortcut.
mstange Mar 30, 2026
33be2ab
Add inverted butterfly wing.
mstange Mar 30, 2026
3554a1c
Add context menu for inverted wing
mstange Apr 4, 2026
030793d
Add the upper butterfly wing.
mstange Mar 30, 2026
17e5ebb
Fix splitter styling
mstange Mar 31, 2026
d6c804d
First attempt at FlameGraph refactor
mstange Apr 2, 2026
2cbefac
Upper wing is now a flame graph
mstange Apr 2, 2026
c0378d5
Add self wing
mstange Apr 2, 2026
693ea0d
Add disclosure box
mstange Apr 2, 2026
ed6512e
Remove horizontal splitters, just use disclosure boxes.
mstange Apr 3, 2026
4c223d5
Fix flamegraph percentages for the function list subtree views.
mstange Apr 3, 2026
e7cc49c
Fix double-click opening source view and context menus in butterfly w…
mstange Apr 9, 2026
883977b
Implement context menu for self wing
mstange Apr 14, 2026
9554833
Persist disclosure box state in the URL.
mstange May 7, 2026
977c2c7
Persist selected function in the URL.
mstange May 7, 2026
b451387
Make it so the replaceState idea actually works.
mstange May 8, 2026
05a796d
Add profiler-edit --insert-stack-labels.
mstange Apr 23, 2026
c19b1db
Implement --only-keep-threads-with-markers-matching and --merge-non-o…
mstange May 7, 2026
8e73a70
Preserve CPU delta during thread merging.
mstange May 7, 2026
e36b3e9
Add a --set-name argument to profiler-edit.
mstange May 7, 2026
82a475f
Add some speedometer analysis helper scripts
mstange May 6, 2025
2d6f6d0
Better tables.
mstange May 8, 2026
01c93cc
Merge two stacks.
mstange May 8, 2026
f2083ff
Add flame graphs.
mstange May 8, 2026
4bd0212
Fix tooltip coordinates when scrolled down
mstange May 8, 2026
b345b45
Make flame graphs in benchmark comparison viewer only show measured s…
mstange May 13, 2026
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
1 change: 1 addition & 0 deletions locales/en-US/app.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -900,6 +900,7 @@ StackSettings--panel-search =
## Tab Bar for the bottom half of the analysis UI.

TabBar--calltree-tab = Call Tree
TabBar--function-list-tab = Function List
TabBar--flame-graph-tab = Flame Graph
TabBar--stack-chart-tab = Stack Chart
TabBar--marker-chart-tab = Marker Chart
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@
"redux-logger": "^3.0.6",
"redux-thunk": "^3.1.0",
"reselect": "^4.1.8",
"smol-toml": "^1.6.1",
"valibot": "^1.3.1",
"workbox-window": "^7.4.0"
},
Expand Down
3 changes: 2 additions & 1 deletion res/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ body {
flex-shrink: 1;
}

.treeAndSidebarWrapper {
.treeAndSidebarWrapper,
.functionTableAndSidebarWrapper {
display: flex;
flex: 1;
flex-flow: column nowrap;
Expand Down
24 changes: 24 additions & 0 deletions scripts/build-node-tools.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,33 @@ const profilerEditConfig = {
outfile: 'node-tools-dist/profiler-edit.js',
};

const analyzeBenchmarkConfig = {
...nodeBaseConfig,
entryPoints: ['src/node-tools/analyze-benchmark.ts'],
outfile: 'node-tools-dist/analyze-benchmark.js',
};

const extractBenchmarkStatsConfig = {
...nodeBaseConfig,
entryPoints: ['src/node-tools/extract-benchmark-stats.ts'],
outfile: 'node-tools-dist/extract-benchmark-stats.js',
};

const compareBenchmarkStatsConfig = {
...nodeBaseConfig,
entryPoints: ['src/node-tools/compare-benchmark-stats.ts'],
outfile: 'node-tools-dist/compare-benchmark-stats.js',
};

async function build() {
await esbuild.build(profilerEditConfig);
console.log('✅ profiler-edit build completed');
await esbuild.build(analyzeBenchmarkConfig);
console.log('✅ analyze-benchmark build completed');
await esbuild.build(extractBenchmarkStatsConfig);
console.log('✅ extract-benchmark-stats build completed');
await esbuild.build(compareBenchmarkStatsConfig);
console.log('✅ compare-benchmark-stats build completed');
}

build().catch(console.error);
24 changes: 24 additions & 0 deletions scripts/generate-known-functions-toml.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import { execSync } from 'child_process';
import { writeFileSync } from 'fs';

const jsCode = execSync(
'node_modules/.bin/esbuild src/node-tools/profile-insert-labels/known-functions.ts --platform=node --format=esm'
).toString();

const dataUrl = 'data:text/javascript,' + encodeURIComponent(jsCode);
const { BREAK_OUT_BUCKETS } = await import(dataUrl);

let toml = '';
for (const bucket of BREAK_OUT_BUCKETS) {
toml += `[[buckets]]\n`;
toml += `name = ${JSON.stringify(bucket.name)}\n`;
toml += `funcPrefixes = [\n`;
for (const prefix of bucket.funcPrefixes) {
toml += ` ${JSON.stringify(prefix)},\n`;
}
toml += `]\n\n`;
}

const outPath = 'src/node-tools/profile-insert-labels/known-functions.toml';
writeFileSync(outPath, toml.trimEnd() + '\n');
console.log(`Wrote ${outPath}`);
7 changes: 7 additions & 0 deletions src/actions/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,13 @@ export function changeProfilesToCompare(profiles: string[]): Action {
};
}

export function changeProfilesToCompareBenchmark(profiles: string[]): Action {
return {
type: 'CHANGE_PROFILES_TO_COMPARE_BENCHMARK',
profiles,
};
}

export function startFetchingProfiles(): Action {
return { type: 'START_FETCHING_PROFILES' };
}
Expand Down
Loading
Loading