From 9e48be14af43c0a35ea92c8a5ccd919ee79e597f Mon Sep 17 00:00:00 2001 From: Connor Peet Date: Thu, 4 Apr 2024 16:42:34 -0700 Subject: [PATCH] fix: make heap snapshot graph a panel instead of an editor (#179) * fix: make heap snapshot graph a panel instead of an editor It's not valid to open a file directly versus focusing a single element. Make it a webview panel instead to avoid the usability issue. For #175 * add mention of retainers graph --- .../src/common/types.ts | 13 ++- .../src/heapsnapshot/editorProvider.ts | 89 ++++++++++++------ .../src/reopenWithEditor.ts | 23 +++-- packages/vscode-js-profile-flame/README.md | 8 +- packages/vscode-js-profile-flame/package.json | 14 +-- .../resources/retainers.png | Bin 0 -> 135634 bytes .../vscode-js-profile-flame/src/extension.ts | 50 ++++++++-- .../src/heapsnapshot-client/client.tsx | 8 +- .../src/heapsnapshot-client/time-view.tsx | 13 +-- 9 files changed, 147 insertions(+), 71 deletions(-) create mode 100644 packages/vscode-js-profile-flame/resources/retainers.png diff --git a/packages/vscode-js-profile-core/src/common/types.ts b/packages/vscode-js-profile-core/src/common/types.ts index 860602b..4a855a2 100644 --- a/packages/vscode-js-profile-core/src/common/types.ts +++ b/packages/vscode-js-profile-core/src/common/types.ts @@ -56,6 +56,17 @@ export interface IReopenWithEditor { requireExtension?: string; } +/** + * Reopens the current document with the given editor, optionally only if + * the given extension is installed. + */ +export interface IRunCommand { + type: 'command'; + command: string; + args: unknown[]; + requireExtension?: string; +} + /** * Calls a graph method, used in the heapsnapshot. */ @@ -64,4 +75,4 @@ export interface ICallHeapGraph { inner: GraphRPCCall; } -export type Message = IOpenDocumentMessage | IReopenWithEditor | ICallHeapGraph; +export type Message = IOpenDocumentMessage | IRunCommand | IReopenWithEditor | ICallHeapGraph; diff --git a/packages/vscode-js-profile-core/src/heapsnapshot/editorProvider.ts b/packages/vscode-js-profile-core/src/heapsnapshot/editorProvider.ts index 8fe5e27..0bcd58e 100644 --- a/packages/vscode-js-profile-core/src/heapsnapshot/editorProvider.ts +++ b/packages/vscode-js-profile-core/src/heapsnapshot/editorProvider.ts @@ -5,7 +5,7 @@ import * as vscode from 'vscode'; import { bundlePage } from '../bundlePage'; import { Message } from '../common/types'; -import { reopenWithEditor } from '../reopenWithEditor'; +import { reopenWithEditor, requireExtension } from '../reopenWithEditor'; import { GraphRPCCall } from './rpc'; import { startWorker } from './startWorker'; @@ -19,7 +19,7 @@ interface IWorker extends vscode.Disposable { worker: Workerish; } -class HeapSnapshotDocument implements vscode.CustomDocument { +export class HeapSnapshotDocument implements vscode.CustomDocument { constructor( public readonly uri: vscode.Uri, public readonly value: IWorker, @@ -73,6 +73,53 @@ const workerRegistry = ((globalThis as any).__jsHeapSnapshotWorkers ??= new (cla } })()); +export const createHeapSnapshotWorker = (uri: vscode.Uri): Promise => + workerRegistry.create(uri); + +export const setupHeapSnapshotWebview = async ( + { worker }: IWorker, + bundle: vscode.Uri, + uri: vscode.Uri, + webview: vscode.Webview, + extraConsts: Record, +) => { + webview.onDidReceiveMessage((message: Message) => { + switch (message.type) { + case 'reopenWith': + reopenWithEditor( + uri.with({ query: message.withQuery }), + message.viewType, + message.requireExtension, + message.toSide, + ); + return; + case 'command': + requireExtension(message.requireExtension, () => + vscode.commands.executeCommand(message.command, ...message.args), + ); + return; + case 'callGraph': + worker.postMessage(message.inner); + return; + default: + console.warn(`Unknown request from webview: ${JSON.stringify(message)}`); + } + }); + + const listener = worker.onMessage((message: unknown) => { + webview.postMessage({ method: 'graphRet', message }); + }); + + webview.options = { enableScripts: true }; + webview.html = await bundlePage(webview.asWebviewUri(bundle), { + SNAPSHOT_URI: webview.asWebviewUri(uri).toString(), + DOCUMENT_URI: uri.toString(), + ...extraConsts, + }); + + return listener; +}; + export class HeapSnapshotEditorProvider implements vscode.CustomEditorProvider { @@ -87,7 +134,7 @@ export class HeapSnapshotEditorProvider * @inheritdoc */ async openCustomDocument(uri: vscode.Uri) { - const worker = await workerRegistry.create(uri); + const worker = await createHeapSnapshotWorker(uri); return new HeapSnapshotDocument(uri, worker); } @@ -98,36 +145,16 @@ export class HeapSnapshotEditorProvider document: HeapSnapshotDocument, webviewPanel: vscode.WebviewPanel, ): Promise { - webviewPanel.webview.onDidReceiveMessage((message: Message) => { - switch (message.type) { - case 'reopenWith': - reopenWithEditor( - document.uri.with({ query: message.withQuery }), - message.viewType, - message.requireExtension, - message.toSide, - ); - return; - case 'callGraph': - document.value.worker.postMessage(message.inner); - return; - default: - console.warn(`Unknown request from webview: ${JSON.stringify(message)}`); - } - }); + const disposable = await setupHeapSnapshotWebview( + document.value, + this.bundle, + document.uri, + webviewPanel.webview, + this.extraConsts, + ); - const listener = document.value.worker.onMessage((message: unknown) => { - webviewPanel.webview.postMessage({ method: 'graphRet', message }); - }); webviewPanel.onDidDispose(() => { - listener.dispose(); - }); - - webviewPanel.webview.options = { enableScripts: true }; - webviewPanel.webview.html = await bundlePage(webviewPanel.webview.asWebviewUri(this.bundle), { - SNAPSHOT_URI: webviewPanel.webview.asWebviewUri(document.uri).toString(), - DOCUMENT_URI: document.uri.toString(), - ...this.extraConsts, + disposable.dispose(); }); } diff --git a/packages/vscode-js-profile-core/src/reopenWithEditor.ts b/packages/vscode-js-profile-core/src/reopenWithEditor.ts index 397b32d..2087a3f 100644 --- a/packages/vscode-js-profile-core/src/reopenWithEditor.ts +++ b/packages/vscode-js-profile-core/src/reopenWithEditor.ts @@ -4,22 +4,29 @@ import * as vscode from 'vscode'; +export function requireExtension(extension: string | undefined, thenDo: () => T): T | undefined { + if (requireExtension && !vscode.extensions.all.some(e => e.id === extension)) { + vscode.commands.executeCommand('workbench.extensions.action.showExtensionsWithIds', [ + requireExtension, + ]); + return undefined; + } + + return thenDo(); +} + export function reopenWithEditor( uri: vscode.Uri, viewType: string, - requireExtension?: string, + requireExtensionId?: string, toSide?: boolean, ) { - if (requireExtension && !vscode.extensions.all.some(e => e.id === requireExtension)) { - vscode.commands.executeCommand('workbench.extensions.action.showExtensionsWithIds', [ - requireExtension, - ]); - } else { + return requireExtension(requireExtensionId, () => vscode.commands.executeCommand( 'vscode.openWith', uri, viewType, toSide ? vscode.ViewColumn.Beside : vscode.ViewColumn.Active, - ); - } + ), + ); } diff --git a/packages/vscode-js-profile-flame/README.md b/packages/vscode-js-profile-flame/README.md index 1e9a182..0b4f60f 100644 --- a/packages/vscode-js-profile-flame/README.md +++ b/packages/vscode-js-profile-flame/README.md @@ -20,7 +20,7 @@ You can further configure the realtime performance view with the following user ### Flame Chart View -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. +You can open a `.cpuprofile` or `.heapprofile` 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. 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. @@ -33,3 +33,9 @@ This view groups call stacks and orders them by time, creating a visual represen ![](/packages/vscode-js-profile-flame/resources/flame-leftheavy.png) The flame chart color is tweakable via the `charts-red` color token in your VS Code theme. + +### Memory Graph View + +You can open a `.heapsnapshot` file in VS Code and click on the "graph" icon beside an object in memory to view a chart of its retainers: + +![](/packages/vscode-js-profile-flame/resources/retainers.png) diff --git a/packages/vscode-js-profile-flame/package.json b/packages/vscode-js-profile-flame/package.json index 2be5eee..8042f97 100644 --- a/packages/vscode-js-profile-flame/package.json +++ b/packages/vscode-js-profile-flame/package.json @@ -32,6 +32,10 @@ "watch": "webpack --mode development --watch" }, "icon": "resources/logo.png", + "activationEvents": [ + "onCommand:jsProfileVisualizer.heapsnapshot.flame.show", + "onWebviewPanel:jsProfileVisualizer.heapsnapshot.flame.show" + ], "contributes": { "customEditors": [ { @@ -53,16 +57,6 @@ "filenamePattern": "*.heapprofile" } ] - }, - { - "viewType": "jsProfileVisualizer.heapsnapshot.flame", - "displayName": "Heap Snapshot Retainers Graph Visualizer", - "priority": "option", - "selector": [ - { - "filenamePattern": "*.heapsnapshot" - } - ] } ], "views": { diff --git a/packages/vscode-js-profile-flame/resources/retainers.png b/packages/vscode-js-profile-flame/resources/retainers.png new file mode 100644 index 0000000000000000000000000000000000000000..2f00faac2cecf0148833395ed8d6f482535d1911 GIT binary patch literal 135634 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 literal 0 HcmV?d00001 diff --git a/packages/vscode-js-profile-flame/src/extension.ts b/packages/vscode-js-profile-flame/src/extension.ts index f6d762f..c9cfaf6 100644 --- a/packages/vscode-js-profile-flame/src/extension.ts +++ b/packages/vscode-js-profile-flame/src/extension.ts @@ -12,11 +12,14 @@ const allConfig = [Config.PollInterval, Config.ViewDuration, Config.Easing]; import * as vscode from 'vscode'; import { CpuProfileEditorProvider } from 'vscode-js-profile-core/out/cpu/editorProvider'; +import { + createHeapSnapshotWorker, + setupHeapSnapshotWebview, +} from 'vscode-js-profile-core/out/esm/heapsnapshot/editorProvider'; import { HeapProfileEditorProvider } from 'vscode-js-profile-core/out/heap/editorProvider'; -import { HeapSnapshotEditorProvider } from 'vscode-js-profile-core/out/esm/heapsnapshot/editorProvider'; import { ProfileCodeLensProvider } from 'vscode-js-profile-core/out/profileCodeLensProvider'; import { createMetrics } from './realtime/metrics'; -import { readRealtimeSettings, RealtimeSessionTracker } from './realtimeSessionTracker'; +import { RealtimeSessionTracker, readRealtimeSettings } from './realtimeSessionTracker'; import { RealtimeWebviewProvider } from './realtimeWebviewProvider'; export function activate(context: vscode.ExtensionContext) { @@ -50,15 +53,44 @@ export function activate(context: vscode.ExtensionContext) { }, ), - vscode.window.registerCustomEditorProvider( - 'jsProfileVisualizer.heapsnapshot.flame', - new HeapSnapshotEditorProvider( - vscode.Uri.joinPath(context.extensionUri, 'out', 'heapsnapshot-client.bundle.js'), - ), - // note: context is not retained when hidden, unlike other editors, because - // the model is kept in a worker_thread and accessed via RPC + vscode.commands.registerCommand( + 'jsProfileVisualizer.heapsnapshot.flame.show', + async ({ uri: rawUri, index, name }) => { + const panel = vscode.window.createWebviewPanel( + 'jsProfileVisualizer.heapsnapshot.flame', + vscode.l10n.t('Memory Graph: {0}', name), + vscode.ViewColumn.Beside, + { + enableScripts: true, + localResourceRoots: [vscode.Uri.joinPath(context.extensionUri, 'out')], + }, + ); + + const uri = vscode.Uri.parse(rawUri); + const worker = await createHeapSnapshotWorker(uri); + const webviewDisposable = await setupHeapSnapshotWebview( + worker, + vscode.Uri.joinPath(context.extensionUri, 'out', 'heapsnapshot-client.bundle.js'), + uri, + panel.webview, + { SNAPSHOT_INDEX: index }, + ); + + panel.onDidDispose(() => { + worker.dispose(); + webviewDisposable.dispose(); + }); + }, ), + // there's no state we actually need to serialize/deserialize, but register + // this so VS Code knows that it can + vscode.window.registerWebviewPanelSerializer('jsProfileVisualizer.heapsnapshot.flame.show', { + deserializeWebviewPanel() { + return Promise.resolve(); + }, + }), + vscode.window.registerWebviewViewProvider(RealtimeWebviewProvider.viewType, realtime), vscode.workspace.onDidChangeConfiguration(evt => { diff --git a/packages/vscode-js-profile-flame/src/heapsnapshot-client/client.tsx b/packages/vscode-js-profile-flame/src/heapsnapshot-client/client.tsx index f29bdec..a81516e 100644 --- a/packages/vscode-js-profile-flame/src/heapsnapshot-client/client.tsx +++ b/packages/vscode-js-profile-flame/src/heapsnapshot-client/client.tsx @@ -19,9 +19,7 @@ import styles from './client.css'; // eslint-disable-next-line @typescript-eslint/no-var-requires cytoscape.use(require('cytoscape-klay')); -declare const DOCUMENT_URI: string; -const snapshotUri = new URL(DOCUMENT_URI.replace(/\%3D/g, '=')); -const index = snapshotUri.searchParams.get('index'); +declare const SNAPSHOT_INDEX: number; const DEFAULT_RETAINER_DISTANCE = 4; @@ -52,7 +50,7 @@ const Graph: FunctionComponent<{ maxDistance: number }> = ({ maxDistance }) => { const [nodes, setNodes] = useState(); useEffect(() => { - doGraphRpc(vscodeApi, 'getRetainers', [Number(index), maxDistance]).then(r => + doGraphRpc(vscodeApi, 'getRetainers', [Number(SNAPSHOT_INDEX), maxDistance]).then(r => setNodes(r as IRetainingNode[]), ); }, [maxDistance]); @@ -150,7 +148,7 @@ const Graph: FunctionComponent<{ maxDistance: number }> = ({ maxDistance }) => { } as any, }); - const root = cy.$(`#${index}`); + const root = cy.$(`#${SNAPSHOT_INDEX}`); root.style('background-color', colors['charts-blue']); attachPathHoverHandle(root, cy); diff --git a/packages/vscode-js-profile-table/src/heapsnapshot-client/time-view.tsx b/packages/vscode-js-profile-table/src/heapsnapshot-client/time-view.tsx index 0db1263..9d8ef92 100644 --- a/packages/vscode-js-profile-table/src/heapsnapshot-client/time-view.tsx +++ b/packages/vscode-js-profile-table/src/heapsnapshot-client/time-view.tsx @@ -10,7 +10,7 @@ import prettyBytes from 'pretty-bytes'; import { Icon } from 'vscode-js-profile-core/out/esm/client/icons'; import { classes } from 'vscode-js-profile-core/out/esm/client/util'; import { VsCodeApi } from 'vscode-js-profile-core/out/esm/client/vscodeApi'; -import { IReopenWithEditor } from 'vscode-js-profile-core/out/esm/common/types'; +import { IRunCommand } from 'vscode-js-profile-core/out/esm/common/types'; import { IClassGroup, INode } from 'vscode-js-profile-core/out/esm/heapsnapshot/rpc'; import { DataProvider, IQueryResults } from 'vscode-js-profile-core/out/esm/ql'; import { IRowProps, makeBaseTimeView } from '../common/base-time-view'; @@ -26,6 +26,8 @@ export type TableNode = (IClassGroup | INode) & { const BaseTimeView = makeBaseTimeView(); +declare const DOCUMENT_URI: string; + export const sortBySelfSize: SortFn = (a, b) => b.selfSize - a.selfSize; export const sortByRetainedSize: SortFn = (a, b) => b.retainedSize - a.retainedSize; export const sortByName: SortFn = (a, b) => a.name.localeCompare(b.name); @@ -100,11 +102,10 @@ const timeViewRow = const onClick = useCallback( (evt: MouseEvent) => { evt.stopPropagation(); - vscode.postMessage({ - type: 'reopenWith', - withQuery: `index=${node.index}`, - toSide: true, - viewType: 'jsProfileVisualizer.heapsnapshot.flame', + vscode.postMessage({ + type: 'command', + command: 'jsProfileVisualizer.heapsnapshot.flame.show', + args: [{ uri: DOCUMENT_URI, index: node.index, name: node.name }], requireExtension: 'ms-vscode.vscode-js-profile-flame', }); },