Skip to content

Commit 39be86e

Browse files
committed
docs: improve flame chart readme, add logo
1 parent e5f0194 commit 39be86e

File tree

8 files changed

+115
-8
lines changed

8 files changed

+115
-8
lines changed
Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,35 @@
11
# `vscode-js-profile-flame`
22

3-
This is a custom editor that provides flame graphs for V8-style `.cpuprofile` files. Usage:
3+
This package contains two pieces of functionality: a flame chart viewer for V8-style `.cpuprofile` files, and a realtime performance view for VS Code:
44

5-
1. Install this extension,
6-
2. Open a `.cpuprofile` file in VS Code,
7-
3. If you already have another editor, such as the default table view, hit `F1` and then `Reopen With` this extension.
5+
### Realtime Performance View
86

9-
![Screenshot of the flame graph](https://raw.githubusercontent.com/microsoft/vscode-js-profile-visualizer/master/flame.png)
7+
While running or debugging a JavaScript debug target (a launch type of `node`, `chrome`, `msedge`, `extensionHost`, or their `pwa-` prefixed versions), the realtime performance view is show in the Debug view:
8+
9+
![](/packages/vscode-js-profile-flame/resources/realtime-view.png)
10+
11+
For Node.js, CPU and heap usage is shown. For browsers, we additionally show DOM node count, restyles per second, and relayouts per second. Clocking on the labels on the bottom will expand a view that lets you show or hide different series.
12+
13+
You can click the "split" button in the view title to show each series on its own chart, and there's also a button to quickly take a profile of the running program.
14+
15+
You can further configure the realtime performance view with the following user settings:
16+
17+
- `debug.flameGraph.realtimePollInterval`: How often (in seconds) to refresh statistics from the runtime.
18+
- `debug.flameGraph.realtimeViewDuration`: How much time (in seconds) should be kept in the graph.
19+
- `debug.flameGraph.realtimeEasing`: Whether easing is enable on the realtime graph.
20+
21+
### Flame Chart View
22+
23+
You can open a `.cpuprofile` file (such as one taken by clicking the "profile" button in the realtime performance view), then click the 🔥 button in the upper right to open a flame chart view.
24+
25+
By default, this view shows chronological "snapshots" of your program's stack taken roughly each millisecond. You can zoom and explore the flamechart, and ctrl or cmd+click on stacks to jump to the stack location.
26+
27+
![](/packages/vscode-js-profile-flame/resources/flame-chrono.png)
28+
29+
The flame chart also supports a "left heavy" view, toggled by clicking the button in the upper-right corner of the chart.
30+
31+
This view groups call stacks and orders them by time, creating a visual representation of the "top down" table you might have used in other tools. This is especially useful if your profile has lots of thin call stacks (common with things like web servers) which are hard to get a sense of in the chronological view. Here's the left-heavy view of the same profile:
32+
33+
![](/packages/vscode-js-profile-flame/resources/flame-leftheavy.png)
34+
35+
The flame chart color is tweakable via the `charts-red` color token in your VS Code theme.

packages/vscode-js-profile-flame/package.json

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@
1111
],
1212
"repository": {
1313
"type": "git",
14-
"url": "git+https://github.com/microsoft/vscode-js-profile-visualizer.git"
14+
"url": "https://github.com/microsoft/vscode-js-profile-visualizer.git"
1515
},
1616
"publisher": "ms-vscode",
1717
"enableProposedApi": true,
1818
"sideEffects": false,
1919
"engines": {
2020
"vscode": "^1.50.0-insider"
2121
},
22+
"icon": "packages/vscode-js-profile-flame/resources/logo.png",
2223
"activationEvents": [
2324
"onView:vscode-js-profile-flame.realtime",
2425
"onCustomEditor:jsProfileVisualizer.cpuprofile.flame"
@@ -88,13 +89,13 @@
8889
"minimum": 0.5,
8990
"maximum": 3600,
9091
"default": 1,
91-
"description": "How often (in seconds) to refresh statistics from the runtime"
92+
"description": "How often (in seconds) to refresh statistics from the runtime."
9293
},
9394
"debug.flameGraph.realtimeViewDuration": {
9495
"type": "integer",
9596
"minimum": 1,
9697
"default": 30,
97-
"description": "How much time (in seconds) should be kept in the graph"
98+
"description": "How much time (in seconds) should be kept in the graph."
9899
},
99100
"debug.flameGraph.realtimeEasing": {
100101
"type": "boolean",
Loading
Loading
File renamed without changes.
Loading
Lines changed: 80 additions & 0 deletions
Loading
Loading

0 commit comments

Comments
 (0)