Re-do tracing initialization and tests around calls

Make `tracing` either `undefined` or the same namespace as before.
Switching all calls to `tracing?.___` means that there is no cost for
a call or the arguments when tracing is not used.  Comparing two runs
without tracing (27 runs, drop 5+5, avg rest) I get:

    master:
      42.59s user 1.00s system 165% cpu 26.372 total
    changed:
      42.01s user 0.982 system 165% cpu 26.039 total

(Makes it all private, so no api changes.)
This commit is contained in:
Eli Barzilay
2021-01-13 16:01:53 -05:00
parent 7de5d0b83a
commit f462576ac2
12 changed files with 107 additions and 114 deletions

View File

@@ -833,9 +833,7 @@ namespace ts.server {
exit() {
this.logger.info("Exiting...");
this.projectService.closeLog();
if (traceDir) {
tracing.stopTracing(ts.emptyArray);
}
tracing?.stopTracing(ts.emptyArray);
process.exit(0);
}
@@ -863,7 +861,7 @@ namespace ts.server {
? stripQuotes(commandLineTraceDir)
: process.env.TSS_TRACE;
if (traceDir) {
tracing.startTracing(tracing.Mode.Server, traceDir);
startTracing(tracingEnabled.Mode.Server, traceDir);
}
const ioSession = new IOSession();