diff --git a/src/vs/base/node/startupTimers.js b/src/vs/base/node/startupTimers.js index 7fc81812efc1e1f9d360103d9d0a3e157a723d1d..19dfaba74fc449c10496b769ca84d481bcdb6d07 100644 --- a/src/vs/base/node/startupTimers.js +++ b/src/vs/base/node/startupTimers.js @@ -29,8 +29,8 @@ define([], function () { function Tick(name, started, stopped, profile) { this.name = name; - this.started = started; - this.stopped = stopped; + this.started = Math.round((started[0] * 1e9 + started[1]) / 1e6); + this.stopped = Math.round((stopped[0] * 1e9 + stopped[1]) / 1e6); this.duration = Math.round(((stopped[0] * 1.e9 + stopped[1]) - (started[0] * 1e9 + started[1])) / 1.e6); this.profile = profile; } @@ -86,7 +86,7 @@ define([], function () { function ticks() { var ret = []; _ticks.forEach(function (value) { ret.push(value); }); - return ret; + return ret.sort((a, b) => a.started - b.started); } function tick(name) { diff --git a/src/vs/workbench/electron-browser/actions.ts b/src/vs/workbench/electron-browser/actions.ts index 95281cf2338b13ce911c46577164a87385a79b67..f061ca87152f2441540bf4abc119670e70c31ca5 100644 --- a/src/vs/workbench/electron-browser/actions.ts +++ b/src/vs/workbench/electron-browser/actions.ts @@ -45,6 +45,7 @@ import { IWorkspaceIdentifier, getWorkspaceLabel, ISingleFolderWorkspaceIdentifi import { FileKind } from 'vs/platform/files/common/files'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IExtensionService } from 'vs/platform/extensions/common/extensions'; +import { ticks } from 'vs/base/node/startupTimers'; // --- actions @@ -363,6 +364,15 @@ export class ShowStartupPerformance extends Action { (console).group('Extension Activation Stats'); (console).table(this.extensionService.getExtensionsActivationTimes()); (console).groupEnd(); + + (console).group('Raw Startup Timers (CSV)'); + let value = `Name\tStart\tDuration\n`; + let offset = ticks()[0].started; + for (const tick of ticks()) { + value += `${tick.name}\t${tick.started - offset}\t${tick.duration}\n`; + } + console.log(value); + (console).groupEnd(); }, 1000); return TPromise.as(true); @@ -1622,4 +1632,4 @@ export class ToggleWindowTabsBar extends Action { public run(): TPromise { return this.windowsService.toggleWindowTabsBar().then(() => true); } -} \ No newline at end of file +}