提交 4944cc28 编写于 作者: J Johannes Rieken

debt - remove last usages of globals and any-casts when it comes to perf marks

上级 1b5c9925
......@@ -7,9 +7,6 @@
const perf = require('./vs/base/common/performance');
perf.mark('main:started');
// Perf measurements
global.perfStartTime = Date.now();
Error.stackTraceLimit = 100; // increase number of stack frames (from 10, https://github.com/v8/v8/wiki/Stack-Trace-API)
const fs = require('fs');
......
......@@ -24,7 +24,7 @@ import { ICodeWindow, IWindowState, WindowMode } from 'vs/platform/windows/elect
import { IWorkspaceIdentifier, IWorkspacesMainService } from 'vs/platform/workspaces/common/workspaces';
import { IBackupMainService } from 'vs/platform/backup/common/backup';
import { ISerializableCommandAction } from 'vs/platform/actions/common/actions';
import { mark, exportEntries } from 'vs/base/common/performance';
import * as perf from 'vs/base/common/performance';
import { resolveMarketplaceHeaders } from 'vs/platform/extensionManagement/node/extensionGalleryService';
export interface IWindowCreationOptions {
......@@ -547,7 +547,7 @@ export class CodeWindow implements ICodeWindow {
}
// Load URL
mark('main:loadWindow');
perf.mark('main:loadWindow');
this._win.loadURL(this.getUrl(configuration));
// Make window visible if it did not open in N seconds because this indicates an error
......@@ -621,10 +621,8 @@ export class CodeWindow implements ICodeWindow {
windowConfiguration.maximized = this._win.isMaximized();
windowConfiguration.frameless = this.hasHiddenTitleBarStyle() && !isMacintosh;
// Perf Counters
windowConfiguration.perfEntries = exportEntries();
windowConfiguration.perfStartTime = (<any>global).perfStartTime;
windowConfiguration.perfWindowLoadTime = Date.now();
// Dump Perf Counters
windowConfiguration.perfEntries = perf.exportEntries();
// Config (combination of process.argv and window configuration)
const environment = parseArgs(process.argv);
......
......@@ -346,9 +346,6 @@ export interface IWindowConfiguration extends ParsedArgs, IOpenFileRequest {
accessibilitySupport?: boolean;
perfEntries: PerformanceEntry[];
perfStartTime?: number;
perfAppReady?: number;
perfWindowLoadTime?: number;
}
export interface IRunActionInWindowRequest {
......@@ -389,4 +386,4 @@ export class ActiveWindowManager implements IDisposable {
dispose() {
this.disposables = dispose(this.disposables);
}
}
\ No newline at end of file
}
......@@ -306,14 +306,6 @@ function main() {
});
}
// Perf Counters
window.MonacoEnvironment.timers = {
isInitialStartup: !!configuration.isInitialStartup,
hasAccessibilitySupport: !!configuration.accessibilitySupport,
start: configuration.perfStartTime,
windowLoad: configuration.perfWindowLoadTime
};
perf.mark('willLoadWorkbenchMain');
require([
'vs/workbench/workbench.main',
......
......@@ -24,7 +24,7 @@ import { ServiceCollection } from 'vs/platform/instantiation/common/serviceColle
import { realpath } from 'vs/base/node/pfs';
import { EnvironmentService } from 'vs/platform/environment/node/environmentService';
import * as gracefulFs from 'graceful-fs';
import { TimerService, IInitData } from 'vs/workbench/services/timer/node/timerService';
import { TimerService } from 'vs/workbench/services/timer/electron-browser/timerService';
import { KeyboardMapperFactory } from 'vs/workbench/services/keybinding/electron-browser/keybindingService';
import { IWindowConfiguration, IWindowsService } from 'vs/platform/windows/common/windows';
import { WindowsChannelClient } from 'vs/platform/windows/common/windowsIpc';
......@@ -85,7 +85,7 @@ function openWorkbench(configuration: IWindowConfiguration): TPromise<void> {
// Since the configuration service is one of the core services that is used in so many places, we initialize it
// right before startup of the workbench shell to have its data ready for consumers
return createAndInitializeWorkspaceService(configuration, environmentService).then(workspaceService => {
const timerService = new TimerService((<any>window).MonacoEnvironment.timers as IInitData, workspaceService.getWorkbenchState() === WorkbenchState.EMPTY);
const timerService = new TimerService(configuration, workspaceService.getWorkbenchState() === WorkbenchState.EMPTY);
const storageService = createStorageService(workspaceService, environmentService);
return domContentLoaded().then(() => {
......
......@@ -8,13 +8,9 @@ import { ITimerService, IStartupMetrics, IMemoryInfo } from 'vs/workbench/servic
import { virtualMachineHint } from 'vs/base/node/id';
import * as perf from 'vs/base/common/performance';
import * as os from 'os';
export interface IInitData {
start: number;
windowLoad: number;
isInitialStartup: boolean;
hasAccessibilitySupport: boolean;
}
import { getAccessibilitySupport } from 'vs/base/browser/browser';
import { AccessibilitySupport } from 'vs/base/common/platform';
import { IWindowConfiguration } from 'vs/platform/windows/common/windows';
export class TimerService implements ITimerService {
......@@ -23,7 +19,7 @@ export class TimerService implements ITimerService {
private _startupMetrics: IStartupMetrics;
constructor(
private readonly _initData: IInitData,
private readonly _configuration: IWindowConfiguration,
private readonly _isEmptyWorkbench: boolean
) {
//
......@@ -38,8 +34,8 @@ export class TimerService implements ITimerService {
public _computeStartupMetrics(): void {
const now = Date.now();
const initialStartup = !!this._initData.isInitialStartup;
const start = initialStartup ? this._initData.start : this._initData.windowLoad;
const initialStartup = !!this._configuration.isInitialStartup;
const startMark = initialStartup ? 'main:started' : 'main:loadWindow';
let totalmem: number;
let freemem: number;
......@@ -72,7 +68,7 @@ export class TimerService implements ITimerService {
this._startupMetrics = {
version: 1,
ellapsed: perf.getEntry('mark', 'didStartWorkbench').startTime - start,
ellapsed: perf.getDuration(startMark, 'didStartWorkbench'),
timers: {
ellapsedAppReady: initialStartup ? perf.getDuration('main:started', 'main:appReady') : undefined,
ellapsedNlsGeneration: perf.getDuration('nlsGeneration:start', 'nlsGeneration:end'),
......@@ -83,7 +79,7 @@ export class TimerService implements ITimerService {
ellapsedEditorRestore: perf.getDuration('willRestoreEditors', 'didRestoreEditors'),
ellapsedViewletRestore: perf.getDuration('willRestoreViewlet', 'didRestoreViewlet'),
ellapsedWorkbench: perf.getDuration('willStartWorkbench', 'didStartWorkbench'),
ellapsedExtensionsReady: perf.getEntry('mark', 'didLoadExtensions').startTime - start,
ellapsedExtensionsReady: perf.getDuration(startMark, 'didLoadExtensions'),
ellapsedTimersToTimersComputed: Date.now() - now,
},
platform,
......@@ -96,7 +92,7 @@ export class TimerService implements ITimerService {
loadavg,
initialStartup,
isVMLikelyhood,
hasAccessibilitySupport: !!this._initData.hasAccessibilitySupport,
hasAccessibilitySupport: getAccessibilitySupport() === AccessibilitySupport.Enabled,
emptyWorkbench: this._isEmptyWorkbench
};
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册