traceperf 0.1.5 → 0.2.0
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 +227 -223
- 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/browser.js
CHANGED
|
@@ -6,8 +6,16 @@
|
|
|
6
6
|
* in React, Next.js, or other frontend applications.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.BrowserExecutionTracker = exports.BrowserPerformanceMonitor = exports.BrowserLogger = void 0;
|
|
9
|
+
exports.BrowserExecutionTracker = exports.BrowserPerformanceMonitor = exports.BrowserLogger = exports.TrackingMode = void 0;
|
|
10
10
|
exports.createBrowserLogger = createBrowserLogger;
|
|
11
|
+
exports.createTracePerf = createTracePerf;
|
|
12
|
+
// Define tracking mode constants to avoid circular dependencies
|
|
13
|
+
exports.TrackingMode = {
|
|
14
|
+
PERFORMANCE: 'performance',
|
|
15
|
+
BALANCED: 'balanced',
|
|
16
|
+
DETAILED: 'detailed',
|
|
17
|
+
DEBUG: 'debug'
|
|
18
|
+
};
|
|
11
19
|
/**
|
|
12
20
|
* Browser-compatible performance monitoring
|
|
13
21
|
*/
|
|
@@ -35,24 +43,60 @@ class BrowserPerformanceMonitor {
|
|
|
35
43
|
const effectiveThreshold = threshold !== null && threshold !== void 0 ? threshold : this._defaultThreshold;
|
|
36
44
|
return duration > effectiveThreshold;
|
|
37
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Get memory usage from browser performance API
|
|
48
|
+
* @returns Memory usage object with heap metrics or undefined if not available
|
|
49
|
+
*/
|
|
38
50
|
getMemoryUsage() {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
try {
|
|
52
|
+
// Chrome-specific memory API
|
|
53
|
+
if (performance && 'memory' in performance) {
|
|
54
|
+
const memory = performance.memory;
|
|
55
|
+
return {
|
|
56
|
+
heapUsed: (memory === null || memory === void 0 ? void 0 : memory.usedJSHeapSize) || 0,
|
|
57
|
+
heapTotal: (memory === null || memory === void 0 ? void 0 : memory.totalJSHeapSize) || 0,
|
|
58
|
+
external: 0, // Not available in browser
|
|
59
|
+
rss: 0, // Not available in browser
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// Firefox has a different memory API
|
|
63
|
+
if (window && window.performance && window.performance.memory) {
|
|
64
|
+
const memory = window.performance.memory;
|
|
65
|
+
return {
|
|
66
|
+
heapUsed: memory.usedJSHeapSize || 0,
|
|
67
|
+
heapTotal: memory.totalJSHeapSize || 0,
|
|
68
|
+
external: 0,
|
|
69
|
+
rss: 0,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
return undefined;
|
|
73
|
+
}
|
|
74
|
+
catch (e) {
|
|
75
|
+
console.warn('Memory API not available or permission denied:', e);
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Calculate memory difference
|
|
81
|
+
* @param start - Starting memory usage
|
|
82
|
+
* @returns Memory difference in bytes
|
|
83
|
+
*/
|
|
84
|
+
getMemoryDiff(start) {
|
|
85
|
+
try {
|
|
86
|
+
const current = this.getMemoryUsage();
|
|
87
|
+
if (!current)
|
|
88
|
+
return 0;
|
|
89
|
+
const diff = current.heapUsed - start.heapUsed;
|
|
90
|
+
// Return zero instead of negative values
|
|
91
|
+
return Math.max(0, diff);
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
console.warn('Error calculating memory difference:', e);
|
|
95
|
+
return 0;
|
|
48
96
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
heapTotal: 0,
|
|
53
|
-
external: 0,
|
|
54
|
-
rss: 0,
|
|
55
|
-
};
|
|
97
|
+
}
|
|
98
|
+
now() {
|
|
99
|
+
return performance.now();
|
|
56
100
|
}
|
|
57
101
|
generateSuggestion(functionName, duration, memoryUsage) {
|
|
58
102
|
if (duration > 1000) {
|
|
@@ -79,7 +123,9 @@ class BrowserExecutionTracker {
|
|
|
79
123
|
this._callStack = [];
|
|
80
124
|
this._executions = [];
|
|
81
125
|
this._currentExecution = null;
|
|
126
|
+
this._trackedFunctions = new Map();
|
|
82
127
|
this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
|
|
128
|
+
this._performanceMonitor = new BrowserPerformanceMonitor(options);
|
|
83
129
|
// Get a reference to the global scope (window in browsers)
|
|
84
130
|
this._globalScope = typeof window !== 'undefined' ? window :
|
|
85
131
|
typeof global !== 'undefined' ? global :
|
|
@@ -112,10 +158,21 @@ class BrowserExecutionTracker {
|
|
|
112
158
|
* @returns The return value of the tracked function
|
|
113
159
|
*/
|
|
114
160
|
track(fn, options = {}) {
|
|
115
|
-
var _a, _b;
|
|
161
|
+
var _a, _b, _c;
|
|
116
162
|
const fnName = options.label || fn.name || 'anonymous';
|
|
117
163
|
const threshold = (_a = options.threshold) !== null && _a !== void 0 ? _a : this._defaultThreshold;
|
|
118
164
|
const enableNestedTracking = (_b = options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
|
|
165
|
+
const trackMemory = (_c = options.trackMemory) !== null && _c !== void 0 ? _c : true;
|
|
166
|
+
// Get memory usage before execution
|
|
167
|
+
let startMemory;
|
|
168
|
+
if (trackMemory) {
|
|
169
|
+
try {
|
|
170
|
+
startMemory = this._performanceMonitor.getMemoryUsage();
|
|
171
|
+
}
|
|
172
|
+
catch (e) {
|
|
173
|
+
console.warn('Unable to track memory usage:', e);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
119
176
|
// Add to call stack
|
|
120
177
|
this._callStack.push(fnName);
|
|
121
178
|
// Create execution record
|
|
@@ -151,6 +208,16 @@ class BrowserExecutionTracker {
|
|
|
151
208
|
execution.endTime = endTime;
|
|
152
209
|
execution.duration = endTime - execution.startTime;
|
|
153
210
|
execution.isSlow = execution.duration > threshold;
|
|
211
|
+
// Calculate memory usage
|
|
212
|
+
if (trackMemory && startMemory !== undefined) {
|
|
213
|
+
try {
|
|
214
|
+
const memoryDiff = this._performanceMonitor.getMemoryDiff(startMemory);
|
|
215
|
+
execution.memoryUsage = memoryDiff;
|
|
216
|
+
}
|
|
217
|
+
catch (e) {
|
|
218
|
+
console.warn('Error calculating memory usage:', e);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
154
221
|
// Restore the previous current execution
|
|
155
222
|
this._currentExecution = previousExecution;
|
|
156
223
|
// Remove from call stack
|
|
@@ -163,6 +230,16 @@ class BrowserExecutionTracker {
|
|
|
163
230
|
execution.endTime = endTime;
|
|
164
231
|
execution.duration = endTime - execution.startTime;
|
|
165
232
|
execution.isSlow = execution.duration > threshold;
|
|
233
|
+
// Calculate memory usage
|
|
234
|
+
if (trackMemory && startMemory !== undefined) {
|
|
235
|
+
try {
|
|
236
|
+
const memoryDiff = this._performanceMonitor.getMemoryDiff(startMemory);
|
|
237
|
+
execution.memoryUsage = memoryDiff;
|
|
238
|
+
}
|
|
239
|
+
catch (e) {
|
|
240
|
+
console.warn('Error calculating memory usage:', e);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
166
243
|
// Generate suggestion if slow
|
|
167
244
|
if (execution.isSlow) {
|
|
168
245
|
execution.suggestion = this.generateSuggestion(fnName, execution.duration);
|
|
@@ -184,12 +261,22 @@ class BrowserExecutionTracker {
|
|
|
184
261
|
* @returns A tracked version of the function
|
|
185
262
|
*/
|
|
186
263
|
createTrackable(fn, options) {
|
|
264
|
+
var _a, _b, _c;
|
|
265
|
+
const label = (options === null || options === void 0 ? void 0 : options.label) || fn.name || 'anonymous';
|
|
266
|
+
const threshold = (_a = options === null || options === void 0 ? void 0 : options.threshold) !== null && _a !== void 0 ? _a : 100; // Use a sensible default of 100ms
|
|
267
|
+
const enableNestedTracking = (_b = options === null || options === void 0 ? void 0 : options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
|
|
268
|
+
const trackMemory = (_c = options === null || options === void 0 ? void 0 : options.trackMemory) !== null && _c !== void 0 ? _c : true;
|
|
269
|
+
const trackingMode = (options === null || options === void 0 ? void 0 : options.trackingMode) || exports.TrackingMode.BALANCED;
|
|
270
|
+
// Create a tracked version of the function using arrow function
|
|
187
271
|
const self = this;
|
|
188
|
-
const fnName = (options === null || options === void 0 ? void 0 : options.label) || fn.name || 'anonymous';
|
|
189
272
|
return function (...args) {
|
|
190
273
|
return self.track(() => fn.apply(this, args), {
|
|
191
274
|
...options,
|
|
192
|
-
label
|
|
275
|
+
label,
|
|
276
|
+
threshold,
|
|
277
|
+
enableNestedTracking,
|
|
278
|
+
trackMemory,
|
|
279
|
+
trackingMode
|
|
193
280
|
});
|
|
194
281
|
};
|
|
195
282
|
}
|
|
@@ -213,7 +300,11 @@ class BrowserExecutionTracker {
|
|
|
213
300
|
const indent = ' '.repeat(execution.level);
|
|
214
301
|
const durationStr = execution.duration.toFixed(2);
|
|
215
302
|
const slowMarker = execution.isSlow ? ' [SLOW]' : '';
|
|
216
|
-
|
|
303
|
+
let memoryStr = '';
|
|
304
|
+
if (execution.memoryUsage !== undefined && execution.memoryUsage > 0) {
|
|
305
|
+
memoryStr = ` [${this.formatMemorySize(execution.memoryUsage)}]`;
|
|
306
|
+
}
|
|
307
|
+
result += `${indent}→ ${execution.name} (${durationStr}ms)${slowMarker}${memoryStr}\n`;
|
|
217
308
|
// Add suggestion if available
|
|
218
309
|
if (execution.suggestion) {
|
|
219
310
|
result += `${indent} ⚠️ ${execution.suggestion}\n`;
|
|
@@ -238,6 +329,7 @@ class BrowserExecutionTracker {
|
|
|
238
329
|
isSlow: execution.isSlow,
|
|
239
330
|
suggestion: execution.suggestion,
|
|
240
331
|
level: execution.level,
|
|
332
|
+
memoryUsage: execution.memoryUsage
|
|
241
333
|
});
|
|
242
334
|
// Add children recursively
|
|
243
335
|
this.addChildrenToResult(execution.children, result);
|
|
@@ -259,11 +351,31 @@ class BrowserExecutionTracker {
|
|
|
259
351
|
isSlow: child.isSlow,
|
|
260
352
|
suggestion: child.suggestion,
|
|
261
353
|
level: child.level,
|
|
354
|
+
memoryUsage: child.memoryUsage
|
|
262
355
|
});
|
|
263
356
|
// Add grandchildren recursively
|
|
264
357
|
this.addChildrenToResult(child.children, result);
|
|
265
358
|
});
|
|
266
359
|
}
|
|
360
|
+
/**
|
|
361
|
+
* Format memory size for display
|
|
362
|
+
* @param bytes Memory usage in bytes
|
|
363
|
+
* @returns Formatted string
|
|
364
|
+
*/
|
|
365
|
+
formatMemorySize(bytes) {
|
|
366
|
+
if (bytes < 1024) {
|
|
367
|
+
return `${bytes.toFixed(2)}B`;
|
|
368
|
+
}
|
|
369
|
+
else if (bytes < 1024 * 1024) {
|
|
370
|
+
return `${(bytes / 1024).toFixed(2)}KB`;
|
|
371
|
+
}
|
|
372
|
+
else if (bytes < 1024 * 1024 * 1024) {
|
|
373
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)}MB`;
|
|
374
|
+
}
|
|
375
|
+
else {
|
|
376
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)}GB`;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
267
379
|
/**
|
|
268
380
|
* Clear all execution records
|
|
269
381
|
*/
|
|
@@ -281,7 +393,9 @@ class BrowserLogger {
|
|
|
281
393
|
constructor(config = {}) {
|
|
282
394
|
this._mode = 'dev';
|
|
283
395
|
this._indentLevel = 0;
|
|
396
|
+
this._trackingMode = exports.TrackingMode.BALANCED;
|
|
284
397
|
this._mode = config.mode || 'dev';
|
|
398
|
+
this._trackingMode = config.trackingMode || exports.TrackingMode.BALANCED;
|
|
285
399
|
this._executionTracker = new BrowserExecutionTracker({
|
|
286
400
|
defaultThreshold: config.performanceThreshold || 100,
|
|
287
401
|
});
|
|
@@ -325,11 +439,33 @@ class BrowserLogger {
|
|
|
325
439
|
getMode() {
|
|
326
440
|
return this._mode;
|
|
327
441
|
}
|
|
442
|
+
/**
|
|
443
|
+
* Set the tracking mode
|
|
444
|
+
* @param mode Tracking mode from TrackingMode enum
|
|
445
|
+
* @returns This instance for chaining
|
|
446
|
+
*/
|
|
447
|
+
setTrackingMode(mode) {
|
|
448
|
+
this._trackingMode = mode;
|
|
449
|
+
return this;
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Get the current tracking mode
|
|
453
|
+
* @returns Current tracking mode
|
|
454
|
+
*/
|
|
455
|
+
getTrackingMode() {
|
|
456
|
+
return this._trackingMode;
|
|
457
|
+
}
|
|
328
458
|
track(fn, options) {
|
|
329
|
-
var _a;
|
|
459
|
+
var _a, _b;
|
|
330
460
|
const silent = (_a = options === null || options === void 0 ? void 0 : options.silent) !== null && _a !== void 0 ? _a : false;
|
|
461
|
+
const trackMemory = (_b = options === null || options === void 0 ? void 0 : options.trackMemory) !== null && _b !== void 0 ? _b : true;
|
|
462
|
+
const trackingMode = (options === null || options === void 0 ? void 0 : options.trackingMode) || this._trackingMode;
|
|
331
463
|
// Track the function execution
|
|
332
|
-
const result = this._executionTracker.track(fn,
|
|
464
|
+
const result = this._executionTracker.track(fn, {
|
|
465
|
+
...options,
|
|
466
|
+
trackMemory,
|
|
467
|
+
trackingMode
|
|
468
|
+
});
|
|
333
469
|
// Log the execution flow if not silent
|
|
334
470
|
if (!silent) {
|
|
335
471
|
const flowChart = this._executionTracker.generateFlowChart();
|
|
@@ -348,7 +484,24 @@ class BrowserLogger {
|
|
|
348
484
|
* @returns A tracked version of the function
|
|
349
485
|
*/
|
|
350
486
|
createTrackable(fn, options) {
|
|
351
|
-
|
|
487
|
+
var _a, _b, _c;
|
|
488
|
+
const label = (options === null || options === void 0 ? void 0 : options.label) || fn.name || 'anonymous';
|
|
489
|
+
const threshold = (_a = options === null || options === void 0 ? void 0 : options.threshold) !== null && _a !== void 0 ? _a : 100; // Use a sensible default of 100ms
|
|
490
|
+
const enableNestedTracking = (_b = options === null || options === void 0 ? void 0 : options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
|
|
491
|
+
const trackMemory = (_c = options === null || options === void 0 ? void 0 : options.trackMemory) !== null && _c !== void 0 ? _c : true;
|
|
492
|
+
const trackingMode = (options === null || options === void 0 ? void 0 : options.trackingMode) || this._trackingMode;
|
|
493
|
+
// Create a tracked version of the function using arrow function
|
|
494
|
+
const self = this;
|
|
495
|
+
return function (...args) {
|
|
496
|
+
return self.track(() => fn.apply(this, args), {
|
|
497
|
+
...options,
|
|
498
|
+
label,
|
|
499
|
+
threshold,
|
|
500
|
+
enableNestedTracking,
|
|
501
|
+
trackMemory,
|
|
502
|
+
trackingMode
|
|
503
|
+
});
|
|
504
|
+
};
|
|
352
505
|
}
|
|
353
506
|
log(level, message, args) {
|
|
354
507
|
// Skip logs based on mode
|
|
@@ -393,26 +546,36 @@ class BrowserLogger {
|
|
|
393
546
|
}
|
|
394
547
|
exports.BrowserLogger = BrowserLogger;
|
|
395
548
|
/**
|
|
396
|
-
* Create a
|
|
397
|
-
*
|
|
398
|
-
* @
|
|
399
|
-
* @returns A new BrowserLogger instance
|
|
549
|
+
* Create a browser-compatible logger instance
|
|
550
|
+
* @param config Configuration options
|
|
551
|
+
* @returns Browser logger instance
|
|
400
552
|
*/
|
|
401
553
|
function createBrowserLogger(config = {}) {
|
|
402
554
|
return new BrowserLogger(config);
|
|
403
555
|
}
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
556
|
+
/**
|
|
557
|
+
* Create a browser-compatible TracePerf instance
|
|
558
|
+
* Alias of createBrowserLogger for API consistency with Node.js version
|
|
559
|
+
* @param config Configuration options
|
|
560
|
+
* @returns Browser logger instance
|
|
561
|
+
*/
|
|
562
|
+
function createTracePerf(config = {}) {
|
|
563
|
+
return createBrowserLogger(config);
|
|
564
|
+
}
|
|
565
|
+
// Create default browser logger instance
|
|
566
|
+
const browserLogger = createBrowserLogger();
|
|
567
|
+
// Export the default instance
|
|
568
|
+
exports.default = browserLogger;
|
|
408
569
|
// Add CommonJS compatibility
|
|
409
570
|
if (typeof module !== 'undefined' && module.exports) {
|
|
410
|
-
module.exports = Object.assign(
|
|
411
|
-
default:
|
|
571
|
+
module.exports = Object.assign(browserLogger, {
|
|
572
|
+
default: browserLogger,
|
|
412
573
|
createBrowserLogger,
|
|
574
|
+
createTracePerf,
|
|
413
575
|
BrowserLogger,
|
|
414
576
|
BrowserPerformanceMonitor,
|
|
415
|
-
BrowserExecutionTracker
|
|
577
|
+
BrowserExecutionTracker,
|
|
578
|
+
TrackingMode: exports.TrackingMode
|
|
416
579
|
});
|
|
417
580
|
}
|
|
418
581
|
//# sourceMappingURL=browser.js.map
|
package/dist/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/core/index.d.ts
CHANGED
package/dist/core/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./config"), exports);
|
|
18
18
|
__exportStar(require("./constants"), exports);
|
|
19
19
|
__exportStar(require("./logger"), exports);
|
|
20
|
+
__exportStar(require("./optimized-performance-monitor"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,kEAAgD"}
|
|
@@ -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
|
+
}
|