@codingame/monaco-vscode-performance-service-override 10.1.4 → 11.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@codingame/monaco-vscode-performance-service-override",
3
- "version": "10.1.4",
3
+ "version": "11.0.1",
4
4
  "keywords": [],
5
5
  "author": {
6
6
  "name": "CodinGame",
@@ -26,6 +26,6 @@
26
26
  }
27
27
  },
28
28
  "dependencies": {
29
- "vscode": "npm:@codingame/monaco-vscode-api@10.1.4"
29
+ "vscode": "npm:@codingame/monaco-vscode-api@11.0.1"
30
30
  }
31
31
  }
@@ -27,7 +27,7 @@ registerAction2(class extends Action2 {
27
27
  constructor() {
28
28
  super({
29
29
  id: 'perfview.show',
30
- title: ( localize2(2706, 'Startup Performance')),
30
+ title: ( localize2(2709, 'Startup Performance')),
31
31
  category: Categories.Developer,
32
32
  f1: true
33
33
  });
@@ -42,7 +42,7 @@ registerAction2(class PrintServiceCycles extends Action2 {
42
42
  constructor() {
43
43
  super({
44
44
  id: 'perf.insta.printAsyncCycles',
45
- title: ( localize2(2707, 'Print Service Cycles')),
45
+ title: ( localize2(2710, 'Print Service Cycles')),
46
46
  category: Categories.Developer,
47
47
  f1: true
48
48
  });
@@ -64,7 +64,7 @@ registerAction2(class PrintServiceTraces extends Action2 {
64
64
  constructor() {
65
65
  super({
66
66
  id: 'perf.insta.printTraces',
67
- title: ( localize2(2708, 'Print Service Traces')),
67
+ title: ( localize2(2711, 'Print Service Traces')),
68
68
  category: Categories.Developer,
69
69
  f1: true
70
70
  });
@@ -83,7 +83,7 @@ registerAction2(class PrintEventProfiling extends Action2 {
83
83
  constructor() {
84
84
  super({
85
85
  id: 'perf.event.profiling',
86
- title: ( localize2(2709, 'Print Emitter Profiles')),
86
+ title: ( localize2(2712, 'Print Emitter Profiles')),
87
87
  category: Categories.Developer,
88
88
  f1: true
89
89
  });
@@ -13,7 +13,6 @@ import { IExtensionService } from 'vscode/vscode/vs/workbench/services/extension
13
13
  import { dispose } from 'vscode/vscode/vs/base/common/lifecycle';
14
14
  import { ICodeEditorService } from 'vscode/vscode/vs/editor/browser/services/codeEditorService';
15
15
  import { writeTransientState } from 'vscode/vscode/vs/workbench/contrib/codeEditor/browser/toggleWordWrap';
16
- import { LoaderStats } from 'vscode/vscode/vs/base/common/amd';
17
16
  import { IProductService } from 'vscode/vscode/vs/platform/product/common/productService.service';
18
17
  import { ITextFileService } from 'vscode/vscode/vs/workbench/services/textfile/common/textfiles.service';
19
18
  import { IEditorService } from 'vscode/vscode/vs/workbench/services/editor/common/editorService.service';
@@ -27,6 +26,7 @@ import { ITextResourceConfigurationService } from 'vscode/vscode/vs/editor/commo
27
26
  import { Registry } from 'vscode/vscode/vs/platform/registry/common/platform';
28
27
  import { getWorkbenchContribution, Extensions } from 'vscode/vscode/vs/workbench/common/contributions';
29
28
  import { ICustomEditorLabelService } from 'vscode/vscode/vs/workbench/services/editor/common/customEditorLabelService.service';
29
+ import { IRemoteAgentService } from 'vscode/vscode/vs/workbench/services/remote/common/remoteAgentService.service';
30
30
 
31
31
  var PerfviewContrib_1, PerfviewInput_1;
32
32
  let PerfviewContrib = class PerfviewContrib {
@@ -61,7 +61,7 @@ let PerfviewInput = class PerfviewInput extends TextResourceEditorInput {
61
61
  return PerfviewInput_1.Id;
62
62
  }
63
63
  constructor(textModelResolverService, textFileService, editorService, fileService, labelService, filesConfigurationService, textResourceConfigurationService, customEditorLabelService) {
64
- super(PerfviewContrib.get().getInputUri(), ( localize(6147, "Startup Performance")), undefined, undefined, undefined, textModelResolverService, textFileService, editorService, fileService, labelService, filesConfigurationService, textResourceConfigurationService, customEditorLabelService);
64
+ super(PerfviewContrib.get().getInputUri(), ( localize(6187, "Startup Performance")), undefined, undefined, undefined, textModelResolverService, textFileService, editorService, fileService, labelService, filesConfigurationService, textResourceConfigurationService, customEditorLabelService);
65
65
  }
66
66
  };
67
67
  PerfviewInput = PerfviewInput_1 = ( (__decorate([
@@ -75,7 +75,7 @@ PerfviewInput = PerfviewInput_1 = ( (__decorate([
75
75
  ( (__param(7, ICustomEditorLabelService)))
76
76
  ], PerfviewInput)));
77
77
  let PerfModelContentProvider = class PerfModelContentProvider {
78
- constructor(_modelService, _languageService, _editorService, _lifecycleService, _timerService, _extensionService, _productService, _terminalService) {
78
+ constructor(_modelService, _languageService, _editorService, _lifecycleService, _timerService, _extensionService, _productService, _remoteAgentService, _terminalService) {
79
79
  this._modelService = _modelService;
80
80
  this._languageService = _languageService;
81
81
  this._editorService = _editorService;
@@ -83,6 +83,7 @@ let PerfModelContentProvider = class PerfModelContentProvider {
83
83
  this._timerService = _timerService;
84
84
  this._extensionService = _extensionService;
85
85
  this._productService = _productService;
86
+ this._remoteAgentService = _remoteAgentService;
86
87
  this._terminalService = _terminalService;
87
88
  this._modelDisposables = [];
88
89
  }
@@ -105,14 +106,13 @@ let PerfModelContentProvider = class PerfModelContentProvider {
105
106
  this._timerService.whenReady(),
106
107
  this._lifecycleService.when(4 ),
107
108
  this._extensionService.whenInstalledExtensionsRegistered(),
108
- this._terminalService.whenConnected
109
+ isWeb && !this._remoteAgentService.getConnection()?.remoteAuthority ? Promise.resolve() : this._terminalService.whenConnected
109
110
  ]).then(() => {
110
111
  if (this._model && !this._model.isDisposed()) {
111
- const stats = LoaderStats.get();
112
112
  const md = ( (new MarkdownBuilder()));
113
113
  this._addSummary(md);
114
114
  md.blank();
115
- this._addSummaryTable(md, stats);
115
+ this._addSummaryTable(md);
116
116
  md.blank();
117
117
  this._addExtensionsTable(md);
118
118
  md.blank();
@@ -147,19 +147,20 @@ let PerfModelContentProvider = class PerfModelContentProvider {
147
147
  md.li(`Screen Reader Active: ${metrics.hasAccessibilitySupport}`);
148
148
  md.li(`Empty Workspace: ${metrics.emptyWorkbench}`);
149
149
  }
150
- _addSummaryTable(md, stats) {
150
+ _addSummaryTable(md) {
151
151
  const metrics = this._timerService.startupMetrics;
152
152
  const contribTimings = ( (Registry.as(Extensions.Workbench))).timings;
153
153
  const table = [];
154
154
  table.push(['start => app.isReady', metrics.timers.ellapsedAppReady, '[main]', `initial startup: ${metrics.initialStartup}`]);
155
155
  table.push(['nls:start => nls:end', metrics.timers.ellapsedNlsGeneration, '[main]', `initial startup: ${metrics.initialStartup}`]);
156
- table.push(['import(main.bundle.js)', metrics.timers.ellapsedLoadMainBundle, '[main]', `initial startup: ${metrics.initialStartup}`]);
156
+ table.push(['import(main.js)', metrics.timers.ellapsedLoadMainBundle, '[main]', `initial startup: ${metrics.initialStartup}`]);
157
+ table.push(['run main.js', metrics.timers.ellapsedRunMainBundle, '[main]', `initial startup: ${metrics.initialStartup}`]);
157
158
  table.push(['start crash reporter', metrics.timers.ellapsedCrashReporter, '[main]', `initial startup: ${metrics.initialStartup}`]);
158
159
  table.push(['serve main IPC handle', metrics.timers.ellapsedMainServer, '[main]', `initial startup: ${metrics.initialStartup}`]);
159
160
  table.push(['create window', metrics.timers.ellapsedWindowCreate, '[main]', `initial startup: ${metrics.initialStartup}, ${metrics.initialStartup ? `state: ${metrics.timers.ellapsedWindowRestoreState}ms, widget: ${metrics.timers.ellapsedBrowserWindowCreate}ms, show: ${metrics.timers.ellapsedWindowMaximize}ms` : ''}`]);
160
161
  table.push(['app.isReady => window.loadUrl()', metrics.timers.ellapsedWindowLoad, '[main]', `initial startup: ${metrics.initialStartup}`]);
161
162
  table.push(['window.loadUrl() => begin to import(workbench.desktop.main.js)', metrics.timers.ellapsedWindowLoadToRequire, '[main->renderer]', StartupKindToString(metrics.windowKind)]);
162
- table.push(['import(workbench.desktop.main.js)', metrics.timers.ellapsedRequire, '[renderer]', `cached data: ${(metrics.didUseCachedData ? 'YES' : 'NO')}${stats ? `, node_modules took ${stats.nodeRequireTotal}ms` : ''}`]);
163
+ table.push(['import(workbench.desktop.main.js)', metrics.timers.ellapsedRequire, '[renderer]', `cached data: ${(metrics.didUseCachedData ? 'YES' : 'NO')}`]);
163
164
  table.push(['wait for window config', metrics.timers.ellapsedWaitForWindowConfig, '[renderer]', undefined]);
164
165
  table.push(['init storage (global & workspace)', metrics.timers.ellapsedStorageInit, '[renderer]', undefined]);
165
166
  table.push(['init workspace service', metrics.timers.ellapsedWorkspaceServiceInit, '[renderer]', undefined]);
@@ -248,46 +249,6 @@ let PerfModelContentProvider = class PerfModelContentProvider {
248
249
  md.value += '```\n';
249
250
  }
250
251
  }
251
- _addLoaderStats(md, stats) {
252
- md.heading(2, 'Loader Stats');
253
- md.heading(3, 'Load AMD-module');
254
- md.table(['Module', 'Duration'], stats.amdLoad);
255
- md.blank();
256
- md.heading(3, 'Load commonjs-module');
257
- md.table(['Module', 'Duration'], stats.nodeRequire);
258
- md.blank();
259
- md.heading(3, 'Invoke AMD-module factory');
260
- md.table(['Module', 'Duration'], stats.amdInvoke);
261
- md.blank();
262
- md.heading(3, 'Invoke commonjs-module');
263
- md.table(['Module', 'Duration'], stats.nodeEval);
264
- }
265
- _addCachedDataStats(md) {
266
- const map = ( (new Map()));
267
- map.set(63 , []);
268
- map.set(60 , []);
269
- map.set(61 , []);
270
- map.set(62 , []);
271
- const printLists = (arr) => {
272
- if (arr) {
273
- arr.sort();
274
- for (const e of arr) {
275
- md.li(`${e}`);
276
- }
277
- md.blank();
278
- }
279
- };
280
- md.heading(2, 'Node Cached Data Stats');
281
- md.blank();
282
- md.heading(3, 'cached data used');
283
- printLists(map.get(60 ));
284
- md.heading(3, 'cached data missed');
285
- printLists(map.get(61 ));
286
- md.heading(3, 'cached data rejected');
287
- printLists(map.get(62 ));
288
- md.heading(3, 'cached data created (lazy, might need refreshes)');
289
- printLists(map.get(63 ));
290
- }
291
252
  _addResourceTimingStats(md) {
292
253
  const stats = ( (performance.getEntriesByType('resource').map(entry => {
293
254
  return [entry.name, entry.duration];
@@ -307,7 +268,8 @@ PerfModelContentProvider = ( (__decorate([
307
268
  ( (__param(4, ITimerService))),
308
269
  ( (__param(5, IExtensionService))),
309
270
  ( (__param(6, IProductService))),
310
- ( (__param(7, ITerminalService)))
271
+ ( (__param(7, IRemoteAgentService))),
272
+ ( (__param(8, ITerminalService)))
311
273
  ], PerfModelContentProvider)));
312
274
  class MarkdownBuilder {
313
275
  constructor() {
@@ -326,7 +288,36 @@ class MarkdownBuilder {
326
288
  return this;
327
289
  }
328
290
  table(header, rows) {
329
- this.value += LoaderStats.toMarkdownTable(header, rows);
291
+ this.value += this.toMarkdownTable(header, rows);
292
+ }
293
+ toMarkdownTable(header, rows) {
294
+ let result = '';
295
+ const lengths = [];
296
+ header.forEach((cell, ci) => {
297
+ lengths[ci] = cell.length;
298
+ });
299
+ rows.forEach(row => {
300
+ row.forEach((cell, ci) => {
301
+ if (typeof cell === 'undefined') {
302
+ cell = row[ci] = '-';
303
+ }
304
+ const len = ( (cell.toString())).length;
305
+ lengths[ci] = Math.max(len, lengths[ci]);
306
+ });
307
+ });
308
+ header.forEach((cell, ci) => { result += `| ${cell + ' '.repeat(lengths[ci] - ( (cell.toString())).length)} `; });
309
+ result += '|\n';
310
+ header.forEach((_cell, ci) => { result += `| ${'-'.repeat(lengths[ci])} `; });
311
+ result += '|\n';
312
+ rows.forEach(row => {
313
+ row.forEach((cell, ci) => {
314
+ if (typeof cell !== 'undefined') {
315
+ result += `| ${cell + ' '.repeat(lengths[ci] - ( (cell.toString())).length)} `;
316
+ }
317
+ });
318
+ result += '|\n';
319
+ });
320
+ return result;
330
321
  }
331
322
  }
332
323