|
1 | 1 | # `vscode-js-profile-flame`
|
2 | 2 |
|
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: |
4 | 4 |
|
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 |
8 | 6 |
|
9 |
| - |
| 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 | + |
| 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 | + |
| 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 | + |
| 34 | + |
| 35 | +The flame chart color is tweakable via the `charts-red` color token in your VS Code theme. |
0 commit comments