提交 89cd0b75 编写于 作者: B Benjamin Pasero

debt - add action to report negative startup times

上级 4807f833
...@@ -63,7 +63,7 @@ import { IContextViewService } from 'vs/platform/contextview/browser/contextView ...@@ -63,7 +63,7 @@ import { IContextViewService } from 'vs/platform/contextview/browser/contextView
import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle';
import { IMarkerService } from 'vs/platform/markers/common/markers'; import { IMarkerService } from 'vs/platform/markers/common/markers';
import { IEnvironmentService } from 'vs/platform/environment/common/environment'; 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 { ChoiceChannel } from 'vs/platform/message/common/messageIpc';
import { ISearchService } from 'vs/platform/search/common/search'; import { ISearchService } from 'vs/platform/search/common/search';
import { IThreadService } from 'vs/workbench/services/thread/common/threadService'; import { IThreadService } from 'vs/workbench/services/thread/common/threadService';
...@@ -187,6 +187,12 @@ export class WorkbenchShell { ...@@ -187,6 +187,12 @@ export class WorkbenchShell {
// start cached data manager // start cached data manager
instantiationService.createInstance(NodeCachedDataManager); 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 { ...@@ -245,11 +251,9 @@ export class WorkbenchShell {
const { profileStartup } = this.environmentService; const { profileStartup } = this.environmentService;
if (profileStartup) { if (profileStartup) {
this.extensionService.onReady().then(() => stopProfiling(profileStartup.dir, profileStartup.prefix)).then(() => { this.extensionService.onReady().then(() => stopProfiling(profileStartup.dir, profileStartup.prefix)).then(() => {
readdir(profileStartup.dir).then(files => { readdir(profileStartup.dir).then(files => {
return files.filter(value => value.indexOf(profileStartup.prefix) === 0); return files.filter(value => value.indexOf(profileStartup.prefix) === 0);
}).then(files => { }).then(files => {
const profileFiles = files.reduce((prev, cur) => `${prev}${join(profileStartup.dir, cur)}\n`, '\n'); const profileFiles = files.reduce((prev, cur) => `${prev}${join(profileStartup.dir, cur)}\n`, '\n');
const primaryButton = this.messageService.confirm({ const primaryButton = this.messageService.confirm({
...@@ -275,6 +279,16 @@ export class WorkbenchShell { ...@@ -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] { private initServiceCollection(container: HTMLElement): [IInstantiationService, ServiceCollection] {
const disposables = new Disposables(); const disposables = new Disposables();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册