Skip to content

Commit d067e2f

Browse files
committed
lazy load trace_timer
1 parent beeb439 commit d067e2f

File tree

3 files changed

+29
-9
lines changed

3 files changed

+29
-9
lines changed

lib/internal/console/constructor.js

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,10 +60,22 @@ const {
6060
CHAR_UPPERCASE_C: kTraceCount,
6161
} = require('internal/constants');
6262
const kCounts = Symbol('counts');
63-
const { time, timeEnd, timeLog } = require('internal/util/trace_timer');
6463

6564
const kTraceConsoleCategory = 'node,node.console';
6665

66+
let _traceTimer;
67+
/**
68+
* @returns {import('internal/util/trace_timer')}
69+
*/
70+
function lazyTraceTimer() {
71+
if (_traceTimer) {
72+
return _traceTimer;
73+
}
74+
75+
_traceTimer = require('internal/util/trace_timer');
76+
return _traceTimer;
77+
}
78+
6779
const kMaxGroupIndentation = 1000;
6880

6981
// Lazy loaded for startup performance.
@@ -393,21 +405,21 @@ const consoleMethods = {
393405
},
394406

395407
time(label = 'default') {
396-
time(this._times, kTraceConsoleCategory, 'console.time()', label, `time::${label}`);
408+
lazyTraceTimer().time(this._times, kTraceConsoleCategory, 'console.time()', label, `time::${label}`);
397409
},
398410

399411
timeEnd(label = 'default') {
400412
if (this[kInternalTimeLogImpl] === undefined)
401413
this[kInternalTimeLogImpl] = FunctionPrototypeBind(timeLogImpl, this);
402414

403-
timeEnd(this._times, kTraceConsoleCategory, 'console.timeEnd()', this[kInternalTimeLogImpl], label, `time::${label}`);
415+
lazyTraceTimer().timeEnd(this._times, kTraceConsoleCategory, 'console.timeEnd()', this[kInternalTimeLogImpl], label, `time::${label}`);
404416
},
405417

406418
timeLog(label = 'default', ...data) {
407419
if (this[kInternalTimeLogImpl] === undefined)
408420
this[kInternalTimeLogImpl] = FunctionPrototypeBind(timeLogImpl, this);
409421

410-
timeLog(this._times, kTraceConsoleCategory, 'console.timeLog()', this[kInternalTimeLogImpl], label, `time::${label}`, data);
422+
lazyTraceTimer().timeLog(this._times, kTraceConsoleCategory, 'console.timeLog()', this[kInternalTimeLogImpl], label, `time::${label}`, data);
411423
},
412424

413425
trace: function trace(...args) {

lib/internal/util/debuglog.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,18 @@ const {
1111
} = primordials;
1212

1313
const { inspect, format, formatWithOptions } = require('internal/util/inspect');
14-
const { time, timeLog, timeEnd } = require('internal/util/trace_timer');
1514
const { isTraceCategoryEnabled } = internalBinding('trace_events');
1615

16+
let _traceTimer;
17+
function lazyTraceTimer() {
18+
if (_traceTimer) {
19+
return _traceTimer;
20+
}
21+
22+
_traceTimer = require('internal/util/trace_timer');
23+
return _traceTimer;
24+
}
25+
1726
// `debugImpls` and `testEnabled` are deliberately not initialized so any call
1827
// to `debuglog()` before `initializeDebugEnv()` is called will throw.
1928
let debugImpls;
@@ -210,7 +219,7 @@ function debugWithTimer(set, cb) {
210219
return;
211220
}
212221

213-
time(tracesStores[set], kTraceCategory, 'debuglog.time', logLabel, traceLabel);
222+
lazyTraceTimer().time(tracesStores[set], kTraceCategory, 'debuglog.time', logLabel, traceLabel);
214223
}
215224

216225
/**
@@ -221,7 +230,7 @@ function debugWithTimer(set, cb) {
221230
return;
222231
}
223232

224-
timeEnd(tracesStores[set], kTraceCategory, 'debuglog.timeEnd', selectedLogImpl, logLabel, traceLabel);
233+
lazyTraceTimer().timeEnd(tracesStores[set], kTraceCategory, 'debuglog.timeEnd', selectedLogImpl, logLabel, traceLabel);
225234
}
226235

227236
/**
@@ -232,7 +241,7 @@ function debugWithTimer(set, cb) {
232241
return;
233242
}
234243

235-
timeLog(tracesStores[set], kTraceCategory, 'debuglog.timeLog', selectedLogImpl, logLabel, traceLabel, args);
244+
lazyTraceTimer().timeLog(tracesStores[set], kTraceCategory, 'debuglog.timeLog', selectedLogImpl, logLabel, traceLabel, args);
236245
}
237246

238247
function init() {

test/parallel/test-bootstrap-modules.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ expected.beforePreExec = new Set([
4444
'NativeModule internal/assert',
4545
'NativeModule internal/util/inspect',
4646
'NativeModule internal/util/debuglog',
47-
'NativeModule internal/util/trace_timer',
4847
'NativeModule internal/timers',
4948
'NativeModule events',
5049
'Internal Binding buffer',

0 commit comments

Comments
 (0)