diff options
Diffstat (limited to 'src/vs/workbench/contrib/notebook/browser/notebookEditor.ts')
-rw-r--r-- | src/vs/workbench/contrib/notebook/browser/notebookEditor.ts | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts index 99d1d8de1f0..084590f8a0c 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts @@ -33,7 +33,7 @@ import { NotebooKernelActionViewItem } from 'vs/workbench/contrib/notebook/brows import { NotebookTextModel } from 'vs/workbench/contrib/notebook/common/model/notebookTextModel'; import { NOTEBOOK_EDITOR_ID } from 'vs/workbench/contrib/notebook/common/notebookCommon'; import { NotebookEditorInput } from 'vs/workbench/contrib/notebook/common/notebookEditorInput'; -import { clearMarks, getAndClearMarks, mark } from 'vs/workbench/contrib/notebook/common/notebookPerformance'; +import { NotebookPerfMarks } from 'vs/workbench/contrib/notebook/common/notebookPerformance'; import { IEditorDropService } from 'vs/workbench/services/editor/browser/editorDropService'; import { GroupsOrder, IEditorGroup, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; @@ -172,8 +172,8 @@ export class NotebookEditor extends EditorPane implements IEditorPaneWithSelecti override async setInput(input: NotebookEditorInput, options: INotebookEditorOptions | undefined, context: IEditorOpenContext, token: CancellationToken, noRetry?: boolean): Promise<void> { try { - clearMarks(input.resource); - mark(input.resource, 'startTime'); + const perf = new NotebookPerfMarks(); + perf.mark('startTime'); const group = this.group!; this._inputListener.value = input.onDidChangeCapabilities(() => this._onDidChangeInputCapabilities(input)); @@ -203,8 +203,8 @@ export class NotebookEditor extends EditorPane implements IEditorPaneWithSelecti // only now `setInput` and yield/await. this is AFTER the actual widget is ready. This is very important // so that others synchronously receive a notebook editor with the correct widget being set await super.setInput(input, options, context, token); - const model = await input.resolve(); - mark(input.resource, 'inputLoaded'); + const model = await input.resolve(perf); + perf.mark('inputLoaded'); // Check for cancellation if (token.isCancellationRequested) { @@ -230,7 +230,7 @@ export class NotebookEditor extends EditorPane implements IEditorPaneWithSelecti const viewState = options?.viewState ?? this._loadNotebookEditorViewState(input); this._widget.value?.setParentContextKeyService(this._contextKeyService); - await this._widget.value!.setModel(model.notebook, viewState); + await this._widget.value!.setModel(model.notebook, viewState, perf); const isReadOnly = input.hasCapability(EditorInputCapabilities.Readonly); await this._widget.value!.setOptions({ ...options, isReadOnly }); this._widgetDisposableStore.add(this._widget.value!.onDidFocusWidget(() => this._onDidFocusWidget.fire())); @@ -240,19 +240,19 @@ export class NotebookEditor extends EditorPane implements IEditorPaneWithSelecti containsGroup: (group) => this.group?.id === group.id })); - mark(input.resource, 'editorLoaded'); + perf.mark('editorLoaded'); type WorkbenchNotebookOpenClassification = { owner: 'rebornix'; comment: 'The notebook file open metrics. Used to get a better understanding of the performance of notebook file opening'; - scheme: { classification: 'SystemMetaData'; purpose: 'FeatureInsight' }; - ext: { classification: 'SystemMetaData'; purpose: 'FeatureInsight' }; - viewType: { classification: 'SystemMetaData'; purpose: 'FeatureInsight' }; - extensionActivated: { classification: 'SystemMetaData'; purpose: 'FeatureInsight' }; - inputLoaded: { classification: 'SystemMetaData'; purpose: 'FeatureInsight' }; - webviewCommLoaded: { classification: 'SystemMetaData'; purpose: 'FeatureInsight' }; - customMarkdownLoaded: { classification: 'SystemMetaData'; purpose: 'FeatureInsight' }; - editorLoaded: { classification: 'SystemMetaData'; purpose: 'FeatureInsight' }; + scheme: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'File system provider scheme for the notebook resource' }; + ext: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'File extension for the notebook resource' }; + viewType: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'The view type of the notebook editor' }; + extensionActivated: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Extension activation time for the resource opening' }; + inputLoaded: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Editor Input loading time for the resource opening' }; + webviewCommLoaded: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Webview initialization time for the resource opening' }; + customMarkdownLoaded: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Custom markdown loading time for the resource opening' }; + editorLoaded: { classification: 'SystemMetaData'; purpose: 'FeatureInsight'; comment: 'Overall editor loading time for the resource opening' }; }; type WorkbenchNotebookOpenEvent = { @@ -266,8 +266,7 @@ export class NotebookEditor extends EditorPane implements IEditorPaneWithSelecti editorLoaded: number; }; - const perfMarks = getAndClearMarks(input.resource); - + const perfMarks = perf.value; if (perfMarks) { const startTime = perfMarks['startTime']; const extensionActivated = perfMarks['extensionActivated']; |