traceperf 0.1.5 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +279 -227
- package/dist/browser.d.ts +52 -7
- package/dist/browser.js +198 -35
- package/dist/browser.js.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/optimized-performance-monitor.d.ts +227 -0
- package/dist/core/optimized-performance-monitor.js +543 -0
- package/dist/core/optimized-performance-monitor.js.map +1 -0
- package/dist/esm/browser.d.ts +52 -7
- package/dist/esm/browser.js +196 -34
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/core/index.d.ts +1 -0
- package/dist/esm/core/index.js +1 -0
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/optimized-performance-monitor.d.ts +227 -0
- package/dist/esm/core/optimized-performance-monitor.js +535 -0
- package/dist/esm/core/optimized-performance-monitor.js.map +1 -0
- package/dist/esm/index.d.ts +7 -8
- package/dist/esm/index.js +18 -19
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/trackers/execution.d.ts +34 -26
- package/dist/esm/trackers/execution.js +99 -60
- package/dist/esm/trackers/execution.js.map +1 -1
- package/dist/esm/trackers/performance.d.ts +7 -21
- package/dist/esm/trackers/performance.js +25 -19
- package/dist/esm/trackers/performance.js.map +1 -1
- package/dist/esm/types/config.d.ts +16 -2
- package/dist/esm/types/index.d.ts +32 -34
- package/dist/esm/types/logger.d.ts +11 -2
- package/dist/esm/utils/colors.js +12 -0
- package/dist/esm/utils/colors.js.map +1 -1
- package/dist/esm/utils/string.d.ts +29 -0
- package/dist/esm/utils/string.js +45 -0
- package/dist/esm/utils/string.js.map +1 -0
- package/dist/index.d.ts +7 -8
- package/dist/index.js +42 -20
- package/dist/index.js.map +1 -1
- package/dist/trackers/execution.d.ts +34 -26
- package/dist/trackers/execution.js +98 -59
- package/dist/trackers/execution.js.map +1 -1
- package/dist/trackers/performance.d.ts +7 -21
- package/dist/trackers/performance.js +25 -19
- package/dist/trackers/performance.js.map +1 -1
- package/dist/types/config.d.ts +16 -2
- package/dist/types/index.d.ts +32 -34
- package/dist/types/logger.d.ts +11 -2
- package/dist/types.d.ts +65 -0
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/colors.js +12 -0
- package/dist/utils/colors.js.map +1 -1
- package/dist/utils/string.d.ts +29 -0
- package/dist/utils/string.js +50 -0
- package/dist/utils/string.js.map +1 -0
- package/package.json +11 -8
package/dist/esm/browser.js
CHANGED
|
@@ -4,6 +4,13 @@
|
|
|
4
4
|
* This file provides a browser-compatible version of TracePerf that can be used
|
|
5
5
|
* in React, Next.js, or other frontend applications.
|
|
6
6
|
*/
|
|
7
|
+
// Define tracking mode constants to avoid circular dependencies
|
|
8
|
+
export const TrackingMode = {
|
|
9
|
+
PERFORMANCE: 'performance',
|
|
10
|
+
BALANCED: 'balanced',
|
|
11
|
+
DETAILED: 'detailed',
|
|
12
|
+
DEBUG: 'debug'
|
|
13
|
+
};
|
|
7
14
|
/**
|
|
8
15
|
* Browser-compatible performance monitoring
|
|
9
16
|
*/
|
|
@@ -31,24 +38,60 @@ class BrowserPerformanceMonitor {
|
|
|
31
38
|
const effectiveThreshold = threshold !== null && threshold !== void 0 ? threshold : this._defaultThreshold;
|
|
32
39
|
return duration > effectiveThreshold;
|
|
33
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Get memory usage from browser performance API
|
|
43
|
+
* @returns Memory usage object with heap metrics or undefined if not available
|
|
44
|
+
*/
|
|
34
45
|
getMemoryUsage() {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
try {
|
|
47
|
+
// Chrome-specific memory API
|
|
48
|
+
if (performance && 'memory' in performance) {
|
|
49
|
+
const memory = performance.memory;
|
|
50
|
+
return {
|
|
51
|
+
heapUsed: (memory === null || memory === void 0 ? void 0 : memory.usedJSHeapSize) || 0,
|
|
52
|
+
heapTotal: (memory === null || memory === void 0 ? void 0 : memory.totalJSHeapSize) || 0,
|
|
53
|
+
external: 0, // Not available in browser
|
|
54
|
+
rss: 0, // Not available in browser
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// Firefox has a different memory API
|
|
58
|
+
if (window && window.performance && window.performance.memory) {
|
|
59
|
+
const memory = window.performance.memory;
|
|
60
|
+
return {
|
|
61
|
+
heapUsed: memory.usedJSHeapSize || 0,
|
|
62
|
+
heapTotal: memory.totalJSHeapSize || 0,
|
|
63
|
+
external: 0,
|
|
64
|
+
rss: 0,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
catch (e) {
|
|
70
|
+
console.warn('Memory API not available or permission denied:', e);
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Calculate memory difference
|
|
76
|
+
* @param start - Starting memory usage
|
|
77
|
+
* @returns Memory difference in bytes
|
|
78
|
+
*/
|
|
79
|
+
getMemoryDiff(start) {
|
|
80
|
+
try {
|
|
81
|
+
const current = this.getMemoryUsage();
|
|
82
|
+
if (!current)
|
|
83
|
+
return 0;
|
|
84
|
+
const diff = current.heapUsed - start.heapUsed;
|
|
85
|
+
// Return zero instead of negative values
|
|
86
|
+
return Math.max(0, diff);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
console.warn('Error calculating memory difference:', e);
|
|
90
|
+
return 0;
|
|
44
91
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
heapTotal: 0,
|
|
49
|
-
external: 0,
|
|
50
|
-
rss: 0,
|
|
51
|
-
};
|
|
92
|
+
}
|
|
93
|
+
now() {
|
|
94
|
+
return performance.now();
|
|
52
95
|
}
|
|
53
96
|
generateSuggestion(functionName, duration, memoryUsage) {
|
|
54
97
|
if (duration > 1000) {
|
|
@@ -74,7 +117,9 @@ class BrowserExecutionTracker {
|
|
|
74
117
|
this._callStack = [];
|
|
75
118
|
this._executions = [];
|
|
76
119
|
this._currentExecution = null;
|
|
120
|
+
this._trackedFunctions = new Map();
|
|
77
121
|
this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
|
|
122
|
+
this._performanceMonitor = new BrowserPerformanceMonitor(options);
|
|
78
123
|
// Get a reference to the global scope (window in browsers)
|
|
79
124
|
this._globalScope = typeof window !== 'undefined' ? window :
|
|
80
125
|
typeof global !== 'undefined' ? global :
|
|
@@ -107,10 +152,21 @@ class BrowserExecutionTracker {
|
|
|
107
152
|
* @returns The return value of the tracked function
|
|
108
153
|
*/
|
|
109
154
|
track(fn, options = {}) {
|
|
110
|
-
var _a, _b;
|
|
155
|
+
var _a, _b, _c;
|
|
111
156
|
const fnName = options.label || fn.name || 'anonymous';
|
|
112
157
|
const threshold = (_a = options.threshold) !== null && _a !== void 0 ? _a : this._defaultThreshold;
|
|
113
158
|
const enableNestedTracking = (_b = options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
|
|
159
|
+
const trackMemory = (_c = options.trackMemory) !== null && _c !== void 0 ? _c : true;
|
|
160
|
+
// Get memory usage before execution
|
|
161
|
+
let startMemory;
|
|
162
|
+
if (trackMemory) {
|
|
163
|
+
try {
|
|
164
|
+
startMemory = this._performanceMonitor.getMemoryUsage();
|
|
165
|
+
}
|
|
166
|
+
catch (e) {
|
|
167
|
+
console.warn('Unable to track memory usage:', e);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
114
170
|
// Add to call stack
|
|
115
171
|
this._callStack.push(fnName);
|
|
116
172
|
// Create execution record
|
|
@@ -146,6 +202,16 @@ class BrowserExecutionTracker {
|
|
|
146
202
|
execution.endTime = endTime;
|
|
147
203
|
execution.duration = endTime - execution.startTime;
|
|
148
204
|
execution.isSlow = execution.duration > threshold;
|
|
205
|
+
// Calculate memory usage
|
|
206
|
+
if (trackMemory && startMemory !== undefined) {
|
|
207
|
+
try {
|
|
208
|
+
const memoryDiff = this._performanceMonitor.getMemoryDiff(startMemory);
|
|
209
|
+
execution.memoryUsage = memoryDiff;
|
|
210
|
+
}
|
|
211
|
+
catch (e) {
|
|
212
|
+
console.warn('Error calculating memory usage:', e);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
149
215
|
// Restore the previous current execution
|
|
150
216
|
this._currentExecution = previousExecution;
|
|
151
217
|
// Remove from call stack
|
|
@@ -158,6 +224,16 @@ class BrowserExecutionTracker {
|
|
|
158
224
|
execution.endTime = endTime;
|
|
159
225
|
execution.duration = endTime - execution.startTime;
|
|
160
226
|
execution.isSlow = execution.duration > threshold;
|
|
227
|
+
// Calculate memory usage
|
|
228
|
+
if (trackMemory && startMemory !== undefined) {
|
|
229
|
+
try {
|
|
230
|
+
const memoryDiff = this._performanceMonitor.getMemoryDiff(startMemory);
|
|
231
|
+
execution.memoryUsage = memoryDiff;
|
|
232
|
+
}
|
|
233
|
+
catch (e) {
|
|
234
|
+
console.warn('Error calculating memory usage:', e);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
161
237
|
// Generate suggestion if slow
|
|
162
238
|
if (execution.isSlow) {
|
|
163
239
|
execution.suggestion = this.generateSuggestion(fnName, execution.duration);
|
|
@@ -179,12 +255,22 @@ class BrowserExecutionTracker {
|
|
|
179
255
|
* @returns A tracked version of the function
|
|
180
256
|
*/
|
|
181
257
|
createTrackable(fn, options) {
|
|
258
|
+
var _a, _b, _c;
|
|
259
|
+
const label = (options === null || options === void 0 ? void 0 : options.label) || fn.name || 'anonymous';
|
|
260
|
+
const threshold = (_a = options === null || options === void 0 ? void 0 : options.threshold) !== null && _a !== void 0 ? _a : 100; // Use a sensible default of 100ms
|
|
261
|
+
const enableNestedTracking = (_b = options === null || options === void 0 ? void 0 : options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
|
|
262
|
+
const trackMemory = (_c = options === null || options === void 0 ? void 0 : options.trackMemory) !== null && _c !== void 0 ? _c : true;
|
|
263
|
+
const trackingMode = (options === null || options === void 0 ? void 0 : options.trackingMode) || TrackingMode.BALANCED;
|
|
264
|
+
// Create a tracked version of the function using arrow function
|
|
182
265
|
const self = this;
|
|
183
|
-
const fnName = (options === null || options === void 0 ? void 0 : options.label) || fn.name || 'anonymous';
|
|
184
266
|
return function (...args) {
|
|
185
267
|
return self.track(() => fn.apply(this, args), {
|
|
186
268
|
...options,
|
|
187
|
-
label
|
|
269
|
+
label,
|
|
270
|
+
threshold,
|
|
271
|
+
enableNestedTracking,
|
|
272
|
+
trackMemory,
|
|
273
|
+
trackingMode
|
|
188
274
|
});
|
|
189
275
|
};
|
|
190
276
|
}
|
|
@@ -208,7 +294,11 @@ class BrowserExecutionTracker {
|
|
|
208
294
|
const indent = ' '.repeat(execution.level);
|
|
209
295
|
const durationStr = execution.duration.toFixed(2);
|
|
210
296
|
const slowMarker = execution.isSlow ? ' [SLOW]' : '';
|
|
211
|
-
|
|
297
|
+
let memoryStr = '';
|
|
298
|
+
if (execution.memoryUsage !== undefined && execution.memoryUsage > 0) {
|
|
299
|
+
memoryStr = ` [${this.formatMemorySize(execution.memoryUsage)}]`;
|
|
300
|
+
}
|
|
301
|
+
result += `${indent}→ ${execution.name} (${durationStr}ms)${slowMarker}${memoryStr}\n`;
|
|
212
302
|
// Add suggestion if available
|
|
213
303
|
if (execution.suggestion) {
|
|
214
304
|
result += `${indent} ⚠️ ${execution.suggestion}\n`;
|
|
@@ -233,6 +323,7 @@ class BrowserExecutionTracker {
|
|
|
233
323
|
isSlow: execution.isSlow,
|
|
234
324
|
suggestion: execution.suggestion,
|
|
235
325
|
level: execution.level,
|
|
326
|
+
memoryUsage: execution.memoryUsage
|
|
236
327
|
});
|
|
237
328
|
// Add children recursively
|
|
238
329
|
this.addChildrenToResult(execution.children, result);
|
|
@@ -254,11 +345,31 @@ class BrowserExecutionTracker {
|
|
|
254
345
|
isSlow: child.isSlow,
|
|
255
346
|
suggestion: child.suggestion,
|
|
256
347
|
level: child.level,
|
|
348
|
+
memoryUsage: child.memoryUsage
|
|
257
349
|
});
|
|
258
350
|
// Add grandchildren recursively
|
|
259
351
|
this.addChildrenToResult(child.children, result);
|
|
260
352
|
});
|
|
261
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Format memory size for display
|
|
356
|
+
* @param bytes Memory usage in bytes
|
|
357
|
+
* @returns Formatted string
|
|
358
|
+
*/
|
|
359
|
+
formatMemorySize(bytes) {
|
|
360
|
+
if (bytes < 1024) {
|
|
361
|
+
return `${bytes.toFixed(2)}B`;
|
|
362
|
+
}
|
|
363
|
+
else if (bytes < 1024 * 1024) {
|
|
364
|
+
return `${(bytes / 1024).toFixed(2)}KB`;
|
|
365
|
+
}
|
|
366
|
+
else if (bytes < 1024 * 1024 * 1024) {
|
|
367
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)}MB`;
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)}GB`;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
262
373
|
/**
|
|
263
374
|
* Clear all execution records
|
|
264
375
|
*/
|
|
@@ -275,7 +386,9 @@ class BrowserLogger {
|
|
|
275
386
|
constructor(config = {}) {
|
|
276
387
|
this._mode = 'dev';
|
|
277
388
|
this._indentLevel = 0;
|
|
389
|
+
this._trackingMode = TrackingMode.BALANCED;
|
|
278
390
|
this._mode = config.mode || 'dev';
|
|
391
|
+
this._trackingMode = config.trackingMode || TrackingMode.BALANCED;
|
|
279
392
|
this._executionTracker = new BrowserExecutionTracker({
|
|
280
393
|
defaultThreshold: config.performanceThreshold || 100,
|
|
281
394
|
});
|
|
@@ -319,11 +432,33 @@ class BrowserLogger {
|
|
|
319
432
|
getMode() {
|
|
320
433
|
return this._mode;
|
|
321
434
|
}
|
|
435
|
+
/**
|
|
436
|
+
* Set the tracking mode
|
|
437
|
+
* @param mode Tracking mode from TrackingMode enum
|
|
438
|
+
* @returns This instance for chaining
|
|
439
|
+
*/
|
|
440
|
+
setTrackingMode(mode) {
|
|
441
|
+
this._trackingMode = mode;
|
|
442
|
+
return this;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Get the current tracking mode
|
|
446
|
+
* @returns Current tracking mode
|
|
447
|
+
*/
|
|
448
|
+
getTrackingMode() {
|
|
449
|
+
return this._trackingMode;
|
|
450
|
+
}
|
|
322
451
|
track(fn, options) {
|
|
323
|
-
var _a;
|
|
452
|
+
var _a, _b;
|
|
324
453
|
const silent = (_a = options === null || options === void 0 ? void 0 : options.silent) !== null && _a !== void 0 ? _a : false;
|
|
454
|
+
const trackMemory = (_b = options === null || options === void 0 ? void 0 : options.trackMemory) !== null && _b !== void 0 ? _b : true;
|
|
455
|
+
const trackingMode = (options === null || options === void 0 ? void 0 : options.trackingMode) || this._trackingMode;
|
|
325
456
|
// Track the function execution
|
|
326
|
-
const result = this._executionTracker.track(fn,
|
|
457
|
+
const result = this._executionTracker.track(fn, {
|
|
458
|
+
...options,
|
|
459
|
+
trackMemory,
|
|
460
|
+
trackingMode
|
|
461
|
+
});
|
|
327
462
|
// Log the execution flow if not silent
|
|
328
463
|
if (!silent) {
|
|
329
464
|
const flowChart = this._executionTracker.generateFlowChart();
|
|
@@ -342,7 +477,24 @@ class BrowserLogger {
|
|
|
342
477
|
* @returns A tracked version of the function
|
|
343
478
|
*/
|
|
344
479
|
createTrackable(fn, options) {
|
|
345
|
-
|
|
480
|
+
var _a, _b, _c;
|
|
481
|
+
const label = (options === null || options === void 0 ? void 0 : options.label) || fn.name || 'anonymous';
|
|
482
|
+
const threshold = (_a = options === null || options === void 0 ? void 0 : options.threshold) !== null && _a !== void 0 ? _a : 100; // Use a sensible default of 100ms
|
|
483
|
+
const enableNestedTracking = (_b = options === null || options === void 0 ? void 0 : options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
|
|
484
|
+
const trackMemory = (_c = options === null || options === void 0 ? void 0 : options.trackMemory) !== null && _c !== void 0 ? _c : true;
|
|
485
|
+
const trackingMode = (options === null || options === void 0 ? void 0 : options.trackingMode) || this._trackingMode;
|
|
486
|
+
// Create a tracked version of the function using arrow function
|
|
487
|
+
const self = this;
|
|
488
|
+
return function (...args) {
|
|
489
|
+
return self.track(() => fn.apply(this, args), {
|
|
490
|
+
...options,
|
|
491
|
+
label,
|
|
492
|
+
threshold,
|
|
493
|
+
enableNestedTracking,
|
|
494
|
+
trackMemory,
|
|
495
|
+
trackingMode
|
|
496
|
+
});
|
|
497
|
+
};
|
|
346
498
|
}
|
|
347
499
|
log(level, message, args) {
|
|
348
500
|
// Skip logs based on mode
|
|
@@ -386,28 +538,38 @@ class BrowserLogger {
|
|
|
386
538
|
}
|
|
387
539
|
}
|
|
388
540
|
/**
|
|
389
|
-
* Create a
|
|
390
|
-
*
|
|
391
|
-
* @
|
|
392
|
-
* @returns A new BrowserLogger instance
|
|
541
|
+
* Create a browser-compatible logger instance
|
|
542
|
+
* @param config Configuration options
|
|
543
|
+
* @returns Browser logger instance
|
|
393
544
|
*/
|
|
394
545
|
export function createBrowserLogger(config = {}) {
|
|
395
546
|
return new BrowserLogger(config);
|
|
396
547
|
}
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
548
|
+
/**
|
|
549
|
+
* Create a browser-compatible TracePerf instance
|
|
550
|
+
* Alias of createBrowserLogger for API consistency with Node.js version
|
|
551
|
+
* @param config Configuration options
|
|
552
|
+
* @returns Browser logger instance
|
|
553
|
+
*/
|
|
554
|
+
export function createTracePerf(config = {}) {
|
|
555
|
+
return createBrowserLogger(config);
|
|
556
|
+
}
|
|
557
|
+
// Create default browser logger instance
|
|
558
|
+
const browserLogger = createBrowserLogger();
|
|
559
|
+
// Export the default instance
|
|
560
|
+
export default browserLogger;
|
|
401
561
|
// Export classes for advanced usage
|
|
402
562
|
export { BrowserLogger, BrowserPerformanceMonitor, BrowserExecutionTracker };
|
|
403
563
|
// Add CommonJS compatibility
|
|
404
564
|
if (typeof module !== 'undefined' && module.exports) {
|
|
405
|
-
module.exports = Object.assign(
|
|
406
|
-
default:
|
|
565
|
+
module.exports = Object.assign(browserLogger, {
|
|
566
|
+
default: browserLogger,
|
|
407
567
|
createBrowserLogger,
|
|
568
|
+
createTracePerf,
|
|
408
569
|
BrowserLogger,
|
|
409
570
|
BrowserPerformanceMonitor,
|
|
410
|
-
BrowserExecutionTracker
|
|
571
|
+
BrowserExecutionTracker,
|
|
572
|
+
TrackingMode
|
|
411
573
|
});
|
|
412
574
|
}
|
|
413
575
|
//# sourceMappingURL=browser.js.map
|
package/dist/esm/browser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/core/index.d.ts
CHANGED
package/dist/esm/core/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optimized Performance Monitoring Library
|
|
3
|
+
*
|
|
4
|
+
* This implementation incorporates all optimizations from benchmarking:
|
|
5
|
+
* 1. Tiered tracking modes for performance vs. detail balance
|
|
6
|
+
* 2. Context preservation for object methods
|
|
7
|
+
* 3. Async/Promise support
|
|
8
|
+
* 4. Browser/Node.js environment detection
|
|
9
|
+
* 5. Memory usage tracking optimizations
|
|
10
|
+
* 6. Module registration capability
|
|
11
|
+
* 7. Enhanced visualization
|
|
12
|
+
*/
|
|
13
|
+
export declare const TrackingModes: {
|
|
14
|
+
PERFORMANCE: string;
|
|
15
|
+
BALANCED: string;
|
|
16
|
+
DETAILED: string;
|
|
17
|
+
DEBUG: string;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Get current memory usage with environment detection
|
|
21
|
+
* @returns Memory usage in bytes
|
|
22
|
+
*/
|
|
23
|
+
export declare const getMemoryUsage: () => number;
|
|
24
|
+
/**
|
|
25
|
+
* Get high-resolution timestamp with environment detection
|
|
26
|
+
* @returns Timestamp in nanoseconds
|
|
27
|
+
*/
|
|
28
|
+
export declare const getTimestamp: () => number;
|
|
29
|
+
/**
|
|
30
|
+
* Calculate time difference between two timestamps
|
|
31
|
+
* @param startTime Starting timestamp in nanoseconds
|
|
32
|
+
* @returns Duration in nanoseconds
|
|
33
|
+
*/
|
|
34
|
+
export declare const getDuration: (startTime: number) => number;
|
|
35
|
+
/**
|
|
36
|
+
* Interface for execution tracking options
|
|
37
|
+
*/
|
|
38
|
+
export interface ExecutionTrackerOptions {
|
|
39
|
+
trackingMode?: string;
|
|
40
|
+
silent?: boolean;
|
|
41
|
+
showMemoryUsage?: boolean;
|
|
42
|
+
enableNestedTracking?: boolean;
|
|
43
|
+
threshold?: number;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Interface for timer options
|
|
47
|
+
*/
|
|
48
|
+
export interface TimerOptions {
|
|
49
|
+
trackMemory?: boolean;
|
|
50
|
+
captureArgs?: boolean;
|
|
51
|
+
args?: any[];
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Interface for execution data
|
|
55
|
+
*/
|
|
56
|
+
export interface ExecutionData {
|
|
57
|
+
id: string;
|
|
58
|
+
label: string;
|
|
59
|
+
startTime: number;
|
|
60
|
+
endTime: number;
|
|
61
|
+
duration: number;
|
|
62
|
+
parentId: string | null;
|
|
63
|
+
children: string[];
|
|
64
|
+
args?: string[];
|
|
65
|
+
complete: boolean;
|
|
66
|
+
memoryAtStart?: number;
|
|
67
|
+
memoryAtEnd?: number;
|
|
68
|
+
memoryDelta?: number;
|
|
69
|
+
result?: any;
|
|
70
|
+
error?: Error | null;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Optimized tracker for individual function executions
|
|
74
|
+
*/
|
|
75
|
+
export declare class OptimizedExecutionTracker {
|
|
76
|
+
private executionTree;
|
|
77
|
+
private currentExecutionId;
|
|
78
|
+
private activeExecutions;
|
|
79
|
+
showMemoryUsage: boolean;
|
|
80
|
+
enableNestedTracking: boolean;
|
|
81
|
+
silent: boolean;
|
|
82
|
+
trackingMode: string;
|
|
83
|
+
defaultThreshold: number;
|
|
84
|
+
private _formatters;
|
|
85
|
+
/**
|
|
86
|
+
* Create a new execution tracker
|
|
87
|
+
* @param options Tracker configuration options
|
|
88
|
+
*/
|
|
89
|
+
constructor(options?: ExecutionTrackerOptions);
|
|
90
|
+
/**
|
|
91
|
+
* Start timing a function execution
|
|
92
|
+
* @param label Function name or label
|
|
93
|
+
* @param parentExecutionId ID of parent execution if nested
|
|
94
|
+
* @param options Additional options
|
|
95
|
+
* @returns Execution ID
|
|
96
|
+
*/
|
|
97
|
+
startTimer(label: string, parentExecutionId?: string | null, options?: TimerOptions): string;
|
|
98
|
+
/**
|
|
99
|
+
* End timing a function execution
|
|
100
|
+
* @param executionId ID of the execution to end
|
|
101
|
+
* @param result Result of the function
|
|
102
|
+
* @param error Error if the function threw
|
|
103
|
+
* @returns Execution data
|
|
104
|
+
*/
|
|
105
|
+
endTimer(executionId: string, result?: any, error?: Error | null): ExecutionData | null;
|
|
106
|
+
/**
|
|
107
|
+
* Generate a visualization of the execution flow
|
|
108
|
+
* @param execution The execution to visualize
|
|
109
|
+
* @param depth Current depth in the tree
|
|
110
|
+
* @param isLastChild Whether this is the last child
|
|
111
|
+
* @param ancestors Array tracking if parents were last children
|
|
112
|
+
* @returns Formatted execution flow chart
|
|
113
|
+
*/
|
|
114
|
+
private _generateExecutionFlowChart;
|
|
115
|
+
/**
|
|
116
|
+
* Create a trackable version of a function
|
|
117
|
+
* @param fn Function to track
|
|
118
|
+
* @param options Tracking options
|
|
119
|
+
* @returns Tracked version of the function
|
|
120
|
+
*/
|
|
121
|
+
createTrackable<T extends (...args: any[]) => any>(fn: T, options?: Record<string, any>): (...args: Parameters<T>) => ReturnType<T>;
|
|
122
|
+
/**
|
|
123
|
+
* Track a module's methods
|
|
124
|
+
* @param module Module to track
|
|
125
|
+
* @param options Tracking options
|
|
126
|
+
* @returns Tracked module
|
|
127
|
+
*/
|
|
128
|
+
trackModule<T extends Record<string, any>>(module: T, options?: Record<string, any>): T;
|
|
129
|
+
/**
|
|
130
|
+
* Track a function execution directly
|
|
131
|
+
* @param fn Function to track
|
|
132
|
+
* @param options Tracking options
|
|
133
|
+
* @returns Function result
|
|
134
|
+
*/
|
|
135
|
+
track<T>(fn: () => T, options?: Record<string, any>): T;
|
|
136
|
+
/**
|
|
137
|
+
* Reset the tracker state
|
|
138
|
+
*/
|
|
139
|
+
reset(): void;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Interface for performance monitor options
|
|
143
|
+
*/
|
|
144
|
+
export interface PerformanceMonitorOptions {
|
|
145
|
+
trackingMode?: string;
|
|
146
|
+
silent?: boolean;
|
|
147
|
+
trackMemory?: boolean;
|
|
148
|
+
enableNestedTracking?: boolean;
|
|
149
|
+
threshold?: number;
|
|
150
|
+
sampleRate?: number;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Main performance monitoring interface
|
|
154
|
+
*/
|
|
155
|
+
export declare class OptimizedPerformanceMonitor {
|
|
156
|
+
private config;
|
|
157
|
+
private executionTracker;
|
|
158
|
+
/**
|
|
159
|
+
* Create a new performance monitor instance
|
|
160
|
+
* @param options Configuration options
|
|
161
|
+
*/
|
|
162
|
+
constructor(options?: PerformanceMonitorOptions);
|
|
163
|
+
/**
|
|
164
|
+
* Track a function execution
|
|
165
|
+
* @param fn The function to track
|
|
166
|
+
* @param options Tracking options
|
|
167
|
+
* @returns Result of the tracked function
|
|
168
|
+
*/
|
|
169
|
+
track<T>(fn: () => T, options?: Record<string, any>): T;
|
|
170
|
+
/**
|
|
171
|
+
* Create a trackable version of a function
|
|
172
|
+
* @param fn The function to track
|
|
173
|
+
* @param options Tracking options
|
|
174
|
+
* @returns Tracked version of the function
|
|
175
|
+
*/
|
|
176
|
+
createTrackable<T extends (...args: any[]) => any>(fn: T, options?: Record<string, any>): (...args: Parameters<T>) => ReturnType<T>;
|
|
177
|
+
/**
|
|
178
|
+
* Register a module for tracking
|
|
179
|
+
* @param module The module or object containing methods to track
|
|
180
|
+
* @param options Tracking options
|
|
181
|
+
* @returns Modified module with tracked methods
|
|
182
|
+
*/
|
|
183
|
+
registerModule<T extends Record<string, any>>(module: T, options?: Record<string, any>): T;
|
|
184
|
+
/**
|
|
185
|
+
* Set configuration options
|
|
186
|
+
* @param config Configuration to update
|
|
187
|
+
* @returns Current configuration after update
|
|
188
|
+
*/
|
|
189
|
+
setConfig(config?: Partial<PerformanceMonitorOptions>): Record<string, any>;
|
|
190
|
+
/**
|
|
191
|
+
* Enable silent mode (no console output)
|
|
192
|
+
* @returns This instance for chaining
|
|
193
|
+
*/
|
|
194
|
+
enableSilentMode(): OptimizedPerformanceMonitor;
|
|
195
|
+
/**
|
|
196
|
+
* Disable silent mode (allow console output)
|
|
197
|
+
* @returns This instance for chaining
|
|
198
|
+
*/
|
|
199
|
+
disableSilentMode(): OptimizedPerformanceMonitor;
|
|
200
|
+
/**
|
|
201
|
+
* Set the tracking mode
|
|
202
|
+
* @param mode Tracking mode from TrackingMode enum
|
|
203
|
+
* @returns This instance for chaining
|
|
204
|
+
*/
|
|
205
|
+
setTrackingMode(mode: string): OptimizedPerformanceMonitor;
|
|
206
|
+
/**
|
|
207
|
+
* Enable memory usage tracking
|
|
208
|
+
* @returns This instance for chaining
|
|
209
|
+
*/
|
|
210
|
+
enableMemoryTracking(): OptimizedPerformanceMonitor;
|
|
211
|
+
/**
|
|
212
|
+
* Disable memory usage tracking
|
|
213
|
+
* @returns This instance for chaining
|
|
214
|
+
*/
|
|
215
|
+
disableMemoryTracking(): OptimizedPerformanceMonitor;
|
|
216
|
+
/**
|
|
217
|
+
* Set the sampling rate
|
|
218
|
+
* @param rate Sampling rate between 0.0 and 1.0
|
|
219
|
+
* @returns This instance for chaining
|
|
220
|
+
*/
|
|
221
|
+
setSampleRate(rate: number): OptimizedPerformanceMonitor;
|
|
222
|
+
/**
|
|
223
|
+
* Reset the tracker state
|
|
224
|
+
* @returns This instance for chaining
|
|
225
|
+
*/
|
|
226
|
+
reset(): OptimizedPerformanceMonitor;
|
|
227
|
+
}
|