From 89cd0b7516a6870d4a6a2cd8e4b36286157462c6 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Tue, 18 Apr 2017 19:10:19 +0200 Subject: [PATCH] debt - add action to report negative startup times --- src/vs/workbench/electron-browser/shell.ts | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index 20a170e9de2..b8442059b66 100644 --- a/src/vs/workbench/electron-browser/shell.ts +++ b/src/vs/workbench/electron-browser/shell.ts @@ -63,7 +63,7 @@ import { IContextViewService } from 'vs/platform/contextview/browser/contextView import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; import { IMarkerService } from 'vs/platform/markers/common/markers'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -import { IMessageService, IChoiceService, Severity } from 'vs/platform/message/common/message'; +import { IMessageService, IChoiceService, Severity, CloseAction } from 'vs/platform/message/common/message'; import { ChoiceChannel } from 'vs/platform/message/common/messageIpc'; import { ISearchService } from 'vs/platform/search/common/search'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; @@ -187,6 +187,12 @@ export class WorkbenchShell { // start cached data manager instantiationService.createInstance(NodeCachedDataManager); + + // Check for negative performance numbers + // TODO@Ben remove me + if (this.timerService.startupMetrics.ellapsed < 0) { + this.handleNegativePerformanceNumbers(instantiationService, this.timerService.startupMetrics.ellapsed); + } } }); @@ -245,11 +251,9 @@ export class WorkbenchShell { const { profileStartup } = this.environmentService; if (profileStartup) { this.extensionService.onReady().then(() => stopProfiling(profileStartup.dir, profileStartup.prefix)).then(() => { - readdir(profileStartup.dir).then(files => { return files.filter(value => value.indexOf(profileStartup.prefix) === 0); }).then(files => { - const profileFiles = files.reduce((prev, cur) => `${prev}${join(profileStartup.dir, cur)}\n`, '\n'); const primaryButton = this.messageService.confirm({ @@ -275,6 +279,16 @@ export class WorkbenchShell { } } + private handleNegativePerformanceNumbers(i: IInstantiationService, time: number): void { + this.messageService.show(Severity.Warning, { + message: nls.localize('handleNegativePerformanceNumbers', "Something went wrong measuring startup performance numbers (ellapsed: {0}ms). We would like to learn more about this issue.", time), + actions: [ + i.createInstance(ReportPerformanceIssueAction, ReportPerformanceIssueAction.ID, ReportPerformanceIssueAction.LABEL), + CloseAction + ] + }); + } + private initServiceCollection(container: HTMLElement): [IInstantiationService, ServiceCollection] { const disposables = new Disposables(); -- GitLab