Remove typescript-etw (#58832)

This commit is contained in:
Jake Bailey 2024-06-13 13:04:51 -07:00 committed by GitHub
parent e370c867c0
commit e30b5fbafe
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 1 additions and 113 deletions

13
package-lock.json generated
View File

@ -18,7 +18,6 @@
"@esfx/canceltoken": "^1.0.0",
"@octokit/rest": "^20.1.1",
"@types/chai": "^4.3.16",
"@types/microsoft__typescript-etw": "^0.1.3",
"@types/minimist": "^1.2.5",
"@types/mocha": "^10.0.6",
"@types/ms": "^0.7.34",
@ -998,12 +997,6 @@
"integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
"dev": true
},
"node_modules/@types/microsoft__typescript-etw": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@types/microsoft__typescript-etw/-/microsoft__typescript-etw-0.1.3.tgz",
"integrity": "sha512-qbO0IoTPJERhGWOvdw9iQbRjM7OGc6+fHVziSKcw566BDSQpEdkGxXcE8BKSHJOP6mkTRobf4QxqRE/aKhrCxg==",
"dev": true
},
"node_modules/@types/minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",
@ -5056,12 +5049,6 @@
"integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
"dev": true
},
"@types/microsoft__typescript-etw": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@types/microsoft__typescript-etw/-/microsoft__typescript-etw-0.1.3.tgz",
"integrity": "sha512-qbO0IoTPJERhGWOvdw9iQbRjM7OGc6+fHVziSKcw566BDSQpEdkGxXcE8BKSHJOP6mkTRobf4QxqRE/aKhrCxg==",
"dev": true
},
"@types/minimist": {
"version": "1.2.5",
"resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz",

View File

@ -44,7 +44,6 @@
"@esfx/canceltoken": "^1.0.0",
"@octokit/rest": "^20.1.1",
"@types/chai": "^4.3.16",
"@types/microsoft__typescript-etw": "^0.1.3",
"@types/minimist": "^1.2.5",
"@types/mocha": "^10.0.6",
"@types/ms": "^0.7.34",
@ -102,7 +101,6 @@
"path": false,
"crypto": false,
"buffer": false,
"@microsoft/typescript-etw": false,
"source-map-support": false,
"inspector": false,
"perf_hooks": false

View File

@ -5,7 +5,6 @@ export * from "../core.js";
export * from "../debug.js";
export * from "../semver.js";
export * from "../performanceCore.js";
export * from "../perfLogger.js";
export * from "../tracing.js";
export * from "../types.js";
export * from "../sys.js";

View File

@ -269,7 +269,6 @@ import {
ParenthesizedExpression,
Pattern,
PatternAmbientModule,
perfLogger,
PostfixUnaryExpression,
PrefixUnaryExpression,
PrivateIdentifier,
@ -513,9 +512,7 @@ const binder = /* @__PURE__ */ createBinder();
/** @internal */
export function bindSourceFile(file: SourceFile, options: CompilerOptions) {
performance.mark("beforeBind");
perfLogger?.logStartBindFile("" + file.fileName);
binder(file, options);
perfLogger?.logStopBindFile();
performance.mark("afterBind");
performance.measure("Bind", "beforeBind", "afterBind");
}

View File

@ -83,7 +83,6 @@ import {
pathIsRelative,
Pattern,
patternText,
perfLogger,
readJson,
removeExtension,
removeFileExtension,
@ -1431,7 +1430,6 @@ export function resolveModuleName(moduleName: string, containingFile: string, co
}
}
perfLogger?.logStartResolveModule(moduleName /* , containingFile, ModuleResolutionKind[moduleResolution]*/);
switch (moduleResolution) {
case ModuleResolutionKind.Node16:
result = node16ModuleNameResolver(moduleName, containingFile, compilerOptions, host, cache, redirectedReference, resolutionMode);
@ -1451,8 +1449,6 @@ export function resolveModuleName(moduleName: string, containingFile: string, co
default:
return Debug.fail(`Unexpected moduleResolution: ${moduleResolution}`);
}
if (result && result.resolvedModule) perfLogger?.logInfoEvent(`Module "${moduleName}" resolved to "${result.resolvedModule.resolvedFileName}"`);
perfLogger?.logStopResolveModule((result && result.resolvedModule) ? "" + result.resolvedModule.resolvedFileName : "null");
if (cache && !cache.isReadonly) {
cache.getOrCreateCacheForDirectory(containingDirectory, redirectedReference).set(moduleName, resolutionMode, result);

View File

@ -293,7 +293,6 @@ import {
ParenthesizedExpression,
ParenthesizedTypeNode,
PartiallyEmittedExpression,
perfLogger,
PlusToken,
PostfixUnaryExpression,
PostfixUnaryOperator,
@ -1343,7 +1342,6 @@ export function createSourceFile(fileName: string, sourceText: string, languageV
performance.mark("beforeParse");
let result: SourceFile;
perfLogger?.logStartParseSourceFile(fileName);
const {
languageVersion,
setExternalModuleIndicator: overrideSetExternalModuleIndicator,
@ -1360,7 +1358,6 @@ export function createSourceFile(fileName: string, sourceText: string, languageV
};
result = Parser.parseSourceFile(fileName, sourceText, languageVersion, /*syntaxCursor*/ undefined, setParentNodes, scriptKind, setIndicator, jsDocParsingMode);
}
perfLogger?.logStopParseSourceFile();
performance.mark("afterParse");
performance.measure("Parse", "beforeParse", "afterParse");

View File

@ -1,44 +0,0 @@
/** @internal */
export interface PerfLogger {
logEvent(msg: string): void;
logErrEvent(msg: string): void;
logPerfEvent(msg: string): void;
logInfoEvent(msg: string): void;
logStartCommand(command: string, msg: string): void;
logStopCommand(command: string, msg: string): void;
logStartUpdateProgram(msg: string): void;
logStopUpdateProgram(msg: string): void;
logStartUpdateGraph(): void;
logStopUpdateGraph(): void;
logStartResolveModule(name: string): void;
logStopResolveModule(success: string): void;
logStartParseSourceFile(filename: string): void;
logStopParseSourceFile(): void;
logStartReadFile(filename: string): void;
logStopReadFile(): void;
logStartBindFile(filename: string): void;
logStopBindFile(): void;
logStartScheduledOperation(operationId: string): void;
logStopScheduledOperation(): void;
}
// Load optional module to enable Event Tracing for Windows
// See https://github.com/microsoft/typescript-etw for more information
let etwModule: typeof import("@microsoft/typescript-etw") | undefined;
try {
const etwModulePath = process.env.TS_ETW_MODULE_PATH ?? "./node_modules/@microsoft/typescript-etw";
// require() will throw an exception if the module is not found
// It may also return undefined if not installed properly
etwModule = require(etwModulePath);
}
catch (e) {
etwModule = undefined;
}
/**
* Performance logger that will generate ETW events if possible - check for `logEvent` member, as `etwModule` will be `{}` when browserified
*
* @internal
*/
export const perfLogger: PerfLogger | undefined = etwModule?.logEvent ? etwModule : undefined;

View File

@ -35,7 +35,6 @@ import {
normalizeSlashes,
orderedRemoveItem,
Path,
perfLogger,
PollingWatchKind,
resolveJSModule,
some,
@ -1786,7 +1785,7 @@ export let sys: System = (() => {
);
}
function readFileWorker(fileName: string, _encoding?: string): string | undefined {
function readFile(fileName: string, _encoding?: string): string | undefined {
let buffer: Buffer;
try {
buffer = _fs.readFileSync(fileName);
@ -1818,15 +1817,7 @@ export let sys: System = (() => {
return buffer.toString("utf8");
}
function readFile(fileName: string, _encoding?: string): string | undefined {
perfLogger?.logStartReadFile(fileName);
const file = readFileWorker(fileName, _encoding);
perfLogger?.logStopReadFile();
return file;
}
function writeFile(fileName: string, data: string, writeByteOrderMark?: boolean): void {
perfLogger?.logEvent("WriteFile: " + fileName);
// If a BOM is required, emit one
if (writeByteOrderMark) {
data = byteOrderMarkIndicator + data;
@ -1846,7 +1837,6 @@ export let sys: System = (() => {
}
function getAccessibleFileSystemEntries(path: string): FileSystemEntries {
perfLogger?.logEvent("ReadDir: " + (path || "."));
try {
const entries = _fs.readdirSync(path || ".", { withFileTypes: true });
const files: string[] = [];

View File

@ -62,7 +62,6 @@ import {
parseConfigHostFromCompilerHostLike,
ParsedCommandLine,
Path,
perfLogger,
PollingInterval,
ProgramUpdateLevel,
ProjectReference,
@ -891,19 +890,15 @@ export function createWatchProgram<T extends BuilderProgram>(host: WatchCompiler
function updateProgram() {
switch (updateLevel) {
case ProgramUpdateLevel.RootNamesAndUpdate:
perfLogger?.logStartUpdateProgram("PartialConfigReload");
reloadFileNamesFromConfigFile();
break;
case ProgramUpdateLevel.Full:
perfLogger?.logStartUpdateProgram("FullConfigReload");
reloadConfigFile();
break;
default:
perfLogger?.logStartUpdateProgram("SynchronizeProgram");
synchronizeProgram();
break;
}
perfLogger?.logStopUpdateProgram("Done");
return getCurrentBuilderProgram();
}

View File

@ -93,7 +93,6 @@ import {
ParsedCommandLine,
parsePackageName,
Path,
perfLogger,
PerformanceEvent,
PluginImport,
PollingInterval,
@ -1360,7 +1359,6 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
*/
updateGraph(): boolean {
tracing?.push(tracing.Phase.Session, "updateGraph", { name: this.projectName, kind: ProjectKind[this.projectKind] });
perfLogger?.logStartUpdateGraph();
this.resolutionCache.startRecordingFilesWithChangedResolutions();
const hasNewProgram = this.updateGraphWorker();
@ -1405,7 +1403,6 @@ export abstract class Project implements LanguageServiceHost, ModuleResolutionHo
// Preload auto import provider so it's not created during completions request
this.getPackageJsonAutoImportProvider();
}
perfLogger?.logStopUpdateGraph();
tracing?.pop();
return !hasNewProgram;
}

View File

@ -102,7 +102,6 @@ import {
OutliningSpan,
PasteEdits,
Path,
perfLogger,
PerformanceEvent,
PossibleProgramFileInfo,
Program,
@ -1206,7 +1205,6 @@ export class Session<TMessage = string> implements EventSender {
protected writeMessage(msg: protocol.Message) {
const msgText = formatMessage(msg, this.logger, this.byteLength, this.host.newLine);
perfLogger?.logEvent(`Response message size: ${msgText.length}`);
this.host.write(msgText);
}
@ -3698,7 +3696,6 @@ export class Session<TMessage = string> implements EventSender {
relevantFile = request.arguments && (request as protocol.FileRequest).arguments.file ? (request as protocol.FileRequest).arguments : undefined;
tracing?.instant(tracing.Phase.Session, "request", { seq: request.seq, command: request.command });
perfLogger?.logStartCommand("" + request.command, this.toStringMessage(message).substring(0, 100));
tracing?.push(tracing.Phase.Session, "executeCommand", { seq: request.seq, command: request.command }, /*separateBeginAndEnd*/ true);
const { response, responseRequired } = this.executeCommand(request);
@ -3715,7 +3712,6 @@ export class Session<TMessage = string> implements EventSender {
}
// Note: Log before writing the response, else the editor can complete its activity before the server does
perfLogger?.logStopCommand("" + request.command, "Success");
tracing?.instant(tracing.Phase.Session, "response", { seq: request.seq, command: request.command, success: !!response });
if (response) {
this.doOutput(response, request.command, request.seq, /*success*/ true);
@ -3730,14 +3726,12 @@ export class Session<TMessage = string> implements EventSender {
if (err instanceof OperationCanceledException) {
// Handle cancellation exceptions
perfLogger?.logStopCommand("" + (request && request.command), "Canceled: " + err);
tracing?.instant(tracing.Phase.Session, "commandCanceled", { seq: request?.seq, command: request?.command });
this.doOutput({ canceled: true }, request!.command, request!.seq, /*success*/ true);
return;
}
this.logErrorWorker(err, this.toStringMessage(message), relevantFile);
perfLogger?.logStopCommand("" + (request && request.command), "Error: " + err);
tracing?.instant(tracing.Phase.Session, "commandError", { seq: request?.seq, command: request?.command, message: (err as Error).message });
this.doOutput(

View File

@ -3,7 +3,6 @@ import {
Comparer,
getBaseFileName,
identity,
perfLogger,
SortedArray,
} from "./_namespaces/ts.js";
import {
@ -48,13 +47,11 @@ export class ThrottledOperations {
}
private static run(operationId: string, self: ThrottledOperations, cb: () => void) {
perfLogger?.logStartScheduledOperation(operationId);
self.pendingTimeouts.delete(operationId);
if (self.logger) {
self.logger.info(`Running: ${operationId}`);
}
cb();
perfLogger?.logStopScheduledOperation();
}
}
@ -75,7 +72,6 @@ export class GcTimer {
private static run(self: GcTimer) {
self.timerId = undefined;
perfLogger?.logStartScheduledOperation("GC collect");
const log = self.logger.hasLevel(LogLevel.requestTime);
const before = log && self.host.getMemoryUsage!(); // TODO: GH#18217
@ -84,7 +80,6 @@ export class GcTimer {
const after = self.host.getMemoryUsage!(); // TODO: GH#18217
self.logger.perftrc(`GC::before ${before}, after ${after}`);
}
perfLogger?.logStopScheduledOperation();
}
}

View File

@ -14,7 +14,6 @@ import {
noopFileWatcher,
normalizePath,
normalizeSlashes,
perfLogger,
startTracing,
stripQuotes,
sys,
@ -213,18 +212,6 @@ export function initializeNodeSystem(): StartInput {
return this.loggingEnabled() && this.level >= level;
}
msg(s: string, type: ts.server.Msg = ts.server.Msg.Err) {
switch (type) {
case ts.server.Msg.Info:
perfLogger?.logInfoEvent(s);
break;
case ts.server.Msg.Perf:
perfLogger?.logPerfEvent(s);
break;
default: // Msg.Err
perfLogger?.logErrEvent(s);
break;
}
if (!this.canWrite()) return;
s = `[${ts.server.nowString()}] ${s}\n`;