traceperf 0.2.0 → 1.3.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 +612 -209
- package/dist/__tests__/helpers/console.d.ts +9 -0
- package/dist/__tests__/helpers/console.js +25 -0
- package/dist/__tests__/helpers/console.js.map +1 -0
- package/dist/auto.d.ts +30 -0
- package/dist/auto.js +91 -0
- package/dist/auto.js.map +1 -0
- package/dist/browser.d.ts +52 -144
- package/dist/browser.js +112 -439
- package/dist/browser.js.map +1 -1
- package/dist/cli.d.ts +68 -0
- package/dist/cli.js +528 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/allocations.d.ts +38 -0
- package/dist/core/allocations.js +85 -0
- package/dist/core/allocations.js.map +1 -0
- package/dist/core/cpu-profile.d.ts +84 -0
- package/dist/core/cpu-profile.js +181 -0
- package/dist/core/cpu-profile.js.map +1 -0
- package/dist/core/env.d.ts +10 -0
- package/dist/core/env.js +40 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/event-loop.d.ts +30 -0
- package/dist/core/event-loop.js +43 -0
- package/dist/core/event-loop.js.map +1 -0
- package/dist/core/explain.d.ts +48 -0
- package/dist/core/explain.js +236 -0
- package/dist/core/explain.js.map +1 -0
- package/dist/core/exporters.d.ts +111 -0
- package/dist/core/exporters.js +236 -0
- package/dist/core/exporters.js.map +1 -0
- package/dist/core/index.d.ts +9 -3
- package/dist/core/index.js +9 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/optimized-performance-monitor.d.ts +180 -26
- package/dist/core/optimized-performance-monitor.js +687 -175
- package/dist/core/optimized-performance-monitor.js.map +1 -1
- package/dist/core/prometheus.d.ts +36 -0
- package/dist/core/prometheus.js +93 -0
- package/dist/core/prometheus.js.map +1 -0
- package/dist/core/records.d.ts +97 -0
- package/dist/core/records.js +87 -0
- package/dist/core/records.js.map +1 -0
- package/dist/core/stats.d.ts +45 -0
- package/dist/core/stats.js +136 -0
- package/dist/core/stats.js.map +1 -0
- package/dist/core/timeline.d.ts +28 -0
- package/dist/core/timeline.js +65 -0
- package/dist/core/timeline.js.map +1 -0
- package/dist/drivers.d.ts +51 -0
- package/dist/drivers.js +205 -0
- package/dist/drivers.js.map +1 -0
- package/dist/esm/auto.d.ts +30 -0
- package/dist/esm/auto.js +87 -0
- package/dist/esm/auto.js.map +1 -0
- package/dist/esm/browser.d.ts +52 -144
- package/dist/esm/browser.js +101 -445
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/cli.d.ts +68 -0
- package/dist/esm/cli.js +520 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/core/allocations.d.ts +38 -0
- package/dist/esm/core/allocations.js +82 -0
- package/dist/esm/core/allocations.js.map +1 -0
- package/dist/esm/core/cpu-profile.d.ts +84 -0
- package/dist/esm/core/cpu-profile.js +176 -0
- package/dist/esm/core/cpu-profile.js.map +1 -0
- package/dist/esm/core/env.d.ts +10 -0
- package/dist/esm/core/env.js +35 -0
- package/dist/esm/core/env.js.map +1 -0
- package/dist/esm/core/event-loop.d.ts +30 -0
- package/dist/esm/core/event-loop.js +40 -0
- package/dist/esm/core/event-loop.js.map +1 -0
- package/dist/esm/core/explain.d.ts +48 -0
- package/dist/esm/core/explain.js +232 -0
- package/dist/esm/core/explain.js.map +1 -0
- package/dist/esm/core/exporters.d.ts +111 -0
- package/dist/esm/core/exporters.js +229 -0
- package/dist/esm/core/exporters.js.map +1 -0
- package/dist/esm/core/index.d.ts +10 -4
- package/dist/esm/core/index.js +10 -4
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/optimized-performance-monitor.d.ts +180 -26
- package/dist/esm/core/optimized-performance-monitor.js +685 -173
- package/dist/esm/core/optimized-performance-monitor.js.map +1 -1
- package/dist/esm/core/prometheus.d.ts +36 -0
- package/dist/esm/core/prometheus.js +89 -0
- package/dist/esm/core/prometheus.js.map +1 -0
- package/dist/esm/core/records.d.ts +97 -0
- package/dist/esm/core/records.js +82 -0
- package/dist/esm/core/records.js.map +1 -0
- package/dist/esm/core/stats.d.ts +45 -0
- package/dist/esm/core/stats.js +131 -0
- package/dist/esm/core/stats.js.map +1 -0
- package/dist/esm/core/timeline.d.ts +28 -0
- package/dist/esm/core/timeline.js +62 -0
- package/dist/esm/core/timeline.js.map +1 -0
- package/dist/esm/drivers.d.ts +51 -0
- package/dist/esm/drivers.js +197 -0
- package/dist/esm/drivers.js.map +1 -0
- package/dist/esm/index.d.ts +13 -5
- package/dist/esm/index.js +21 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instrument.d.ts +88 -0
- package/dist/esm/instrument.js +274 -0
- package/dist/esm/instrument.js.map +1 -0
- package/dist/esm/integrations.d.ts +70 -0
- package/dist/esm/integrations.js +197 -0
- package/dist/esm/integrations.js.map +1 -0
- package/dist/esm/node-builtins.d.ts +1 -0
- package/dist/esm/node-builtins.js +32 -0
- package/dist/esm/node-builtins.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/register.d.ts +20 -0
- package/dist/esm/register.js +98 -0
- package/dist/esm/register.js.map +1 -0
- package/dist/esm/report-html.d.ts +11 -0
- package/dist/esm/report-html.js +106 -0
- package/dist/esm/report-html.js.map +1 -0
- package/dist/esm/types/index.d.ts +4 -80
- package/dist/esm/types/index.js +1 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/options.d.ts +72 -0
- package/dist/esm/types/options.js +2 -0
- package/dist/esm/types/options.js.map +1 -0
- package/dist/esm/watch.d.ts +17 -0
- package/dist/esm/watch.js +87 -0
- package/dist/esm/watch.js.map +1 -0
- package/dist/index.d.ts +10 -2
- package/dist/index.js +26 -29
- package/dist/index.js.map +1 -1
- package/dist/instrument.d.ts +88 -0
- package/dist/instrument.js +282 -0
- package/dist/instrument.js.map +1 -0
- package/dist/integrations.d.ts +70 -0
- package/dist/integrations.js +205 -0
- package/dist/integrations.js.map +1 -0
- package/dist/node-builtins.d.ts +1 -0
- package/dist/node-builtins.js +67 -0
- package/dist/node-builtins.js.map +1 -0
- package/dist/register.d.ts +20 -0
- package/dist/register.js +103 -0
- package/dist/register.js.map +1 -0
- package/dist/report-html.d.ts +11 -0
- package/dist/report-html.js +109 -0
- package/dist/report-html.js.map +1 -0
- package/dist/traceperf.browser.js +1910 -0
- package/dist/traceperf.browser.min.js +6 -0
- package/dist/types/index.d.ts +4 -80
- package/dist/types/index.js +1 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +72 -0
- package/dist/types/{config.js → options.js} +1 -1
- package/dist/types/options.js.map +1 -0
- package/dist/watch.d.ts +17 -0
- package/dist/watch.js +90 -0
- package/dist/watch.js.map +1 -0
- package/package.json +99 -19
- package/dist/core/config.d.ts +0 -77
- package/dist/core/config.js +0 -116
- package/dist/core/config.js.map +0 -1
- package/dist/core/constants.d.ts +0 -78
- package/dist/core/constants.js +0 -109
- package/dist/core/constants.js.map +0 -1
- package/dist/core/logger.d.ts +0 -97
- package/dist/core/logger.js +0 -186
- package/dist/core/logger.js.map +0 -1
- package/dist/esm/core/config.d.ts +0 -77
- package/dist/esm/core/config.js +0 -112
- package/dist/esm/core/config.js.map +0 -1
- package/dist/esm/core/constants.d.ts +0 -78
- package/dist/esm/core/constants.js +0 -106
- package/dist/esm/core/constants.js.map +0 -1
- package/dist/esm/core/logger.d.ts +0 -97
- package/dist/esm/core/logger.js +0 -182
- package/dist/esm/core/logger.js.map +0 -1
- package/dist/esm/formatters/ascii.d.ts +0 -52
- package/dist/esm/formatters/ascii.js +0 -100
- package/dist/esm/formatters/ascii.js.map +0 -1
- package/dist/esm/formatters/cli.d.ts +0 -50
- package/dist/esm/formatters/cli.js +0 -96
- package/dist/esm/formatters/cli.js.map +0 -1
- package/dist/esm/formatters/index.d.ts +0 -3
- package/dist/esm/formatters/index.js +0 -4
- package/dist/esm/formatters/index.js.map +0 -1
- package/dist/esm/formatters/json.d.ts +0 -45
- package/dist/esm/formatters/json.js +0 -85
- package/dist/esm/formatters/json.js.map +0 -1
- package/dist/esm/trackers/execution.d.ts +0 -101
- package/dist/esm/trackers/execution.js +0 -226
- package/dist/esm/trackers/execution.js.map +0 -1
- package/dist/esm/trackers/index.d.ts +0 -2
- package/dist/esm/trackers/index.js +0 -3
- package/dist/esm/trackers/index.js.map +0 -1
- package/dist/esm/trackers/performance.d.ts +0 -68
- package/dist/esm/trackers/performance.js +0 -112
- package/dist/esm/trackers/performance.js.map +0 -1
- package/dist/esm/types/config.d.ts +0 -142
- package/dist/esm/types/config.js +0 -2
- package/dist/esm/types/config.js.map +0 -1
- package/dist/esm/types/logger.d.ts +0 -147
- package/dist/esm/types/logger.js +0 -2
- package/dist/esm/types/logger.js.map +0 -1
- package/dist/esm/utils/colors.d.ts +0 -87
- package/dist/esm/utils/colors.js +0 -146
- package/dist/esm/utils/colors.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -3
- package/dist/esm/utils/index.js +0 -4
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/proxy-tracker.d.ts +0 -68
- package/dist/esm/utils/proxy-tracker.js +0 -127
- package/dist/esm/utils/proxy-tracker.js.map +0 -1
- package/dist/esm/utils/stack.d.ts +0 -63
- package/dist/esm/utils/stack.js +0 -110
- package/dist/esm/utils/stack.js.map +0 -1
- package/dist/esm/utils/string.d.ts +0 -29
- package/dist/esm/utils/string.js +0 -45
- package/dist/esm/utils/string.js.map +0 -1
- package/dist/esm/utils/timing.d.ts +0 -65
- package/dist/esm/utils/timing.js +0 -99
- package/dist/esm/utils/timing.js.map +0 -1
- package/dist/formatters/ascii.d.ts +0 -52
- package/dist/formatters/ascii.js +0 -104
- package/dist/formatters/ascii.js.map +0 -1
- package/dist/formatters/cli.d.ts +0 -50
- package/dist/formatters/cli.js +0 -100
- package/dist/formatters/cli.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -3
- package/dist/formatters/index.js +0 -20
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/json.d.ts +0 -45
- package/dist/formatters/json.js +0 -89
- package/dist/formatters/json.js.map +0 -1
- package/dist/trackers/execution.d.ts +0 -101
- package/dist/trackers/execution.js +0 -230
- package/dist/trackers/execution.js.map +0 -1
- package/dist/trackers/index.d.ts +0 -2
- package/dist/trackers/index.js +0 -19
- package/dist/trackers/index.js.map +0 -1
- package/dist/trackers/performance.d.ts +0 -68
- package/dist/trackers/performance.js +0 -116
- package/dist/trackers/performance.js.map +0 -1
- package/dist/types/config.d.ts +0 -142
- package/dist/types/config.js.map +0 -1
- package/dist/types/logger.d.ts +0 -147
- package/dist/types/logger.js +0 -3
- package/dist/types/logger.js.map +0 -1
- package/dist/types.d.ts +0 -65
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -87
- package/dist/utils/colors.js +0 -160
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.js +0 -20
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/proxy-tracker.d.ts +0 -68
- package/dist/utils/proxy-tracker.js +0 -131
- package/dist/utils/proxy-tracker.js.map +0 -1
- package/dist/utils/stack.d.ts +0 -63
- package/dist/utils/stack.js +0 -116
- package/dist/utils/stack.js.map +0 -1
- package/dist/utils/string.d.ts +0 -29
- package/dist/utils/string.js +0 -50
- package/dist/utils/string.js.map +0 -1
- package/dist/utils/timing.d.ts +0 -65
- package/dist/utils/timing.js +0 -106
- package/dist/utils/timing.js.map +0 -1
package/dist/browser.js
CHANGED
|
@@ -6,402 +6,74 @@
|
|
|
6
6
|
* in React, Next.js, or other frontend applications.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.
|
|
9
|
+
exports.instrumentFetch = exports.formatTree = exports.recordToJSON = exports.openTelemetryExporter = exports.jsonLinesExporter = exports.toChromeTrace = exports.performanceTimeline = exports.BrowserLogger = exports.TrackingMode = void 0;
|
|
10
10
|
exports.createBrowserLogger = createBrowserLogger;
|
|
11
11
|
exports.createTracePerf = createTracePerf;
|
|
12
|
+
const optimized_performance_monitor_1 = require("./core/optimized-performance-monitor");
|
|
12
13
|
// Define tracking mode constants to avoid circular dependencies
|
|
13
|
-
exports.TrackingMode =
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
DEBUG: 'debug'
|
|
14
|
+
exports.TrackingMode = optimized_performance_monitor_1.TrackingModes;
|
|
15
|
+
const preserveSignature = (wrapper, fn) => {
|
|
16
|
+
Object.defineProperty(wrapper, 'name', { value: fn.name, configurable: true });
|
|
17
|
+
Object.defineProperty(wrapper, 'length', { value: fn.length, configurable: true });
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
20
|
-
* Browser-compatible
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
const id = `${label}-${Math.random().toString(36).substring(2, 9)}`;
|
|
30
|
-
this._timers.set(id, performance.now());
|
|
31
|
-
return id;
|
|
32
|
-
}
|
|
33
|
-
endTimer(id) {
|
|
34
|
-
const startTime = this._timers.get(id);
|
|
35
|
-
if (!startTime) {
|
|
36
|
-
throw new Error(`Timer with id ${id} not found`);
|
|
37
|
-
}
|
|
38
|
-
const duration = performance.now() - startTime;
|
|
39
|
-
this._timers.delete(id);
|
|
40
|
-
return duration;
|
|
41
|
-
}
|
|
42
|
-
isBottleneck(duration, threshold) {
|
|
43
|
-
const effectiveThreshold = threshold !== null && threshold !== void 0 ? threshold : this._defaultThreshold;
|
|
44
|
-
return duration > effectiveThreshold;
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Get memory usage from browser performance API
|
|
48
|
-
* @returns Memory usage object with heap metrics or undefined if not available
|
|
49
|
-
*/
|
|
50
|
-
getMemoryUsage() {
|
|
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;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
now() {
|
|
99
|
-
return performance.now();
|
|
100
|
-
}
|
|
101
|
-
generateSuggestion(functionName, duration, memoryUsage) {
|
|
102
|
-
if (duration > 1000) {
|
|
103
|
-
return `🛠 Potential Fix: Consider optimizing or adding caching to ${functionName}`;
|
|
104
|
-
}
|
|
105
|
-
if (duration > 500) {
|
|
106
|
-
return `🛠 Potential Fix: Look for blocking operations in ${functionName}`;
|
|
107
|
-
}
|
|
108
|
-
return `🛠 Potential Fix: Review ${functionName} for performance optimizations`;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
exports.BrowserPerformanceMonitor = BrowserPerformanceMonitor;
|
|
112
|
-
/**
|
|
113
|
-
* Browser-compatible execution tracker for tracking function calls and generating flow charts
|
|
20
|
+
* Browser-compatible TracePerf instance.
|
|
21
|
+
*
|
|
22
|
+
* Shares the core tracker with the Node.js entry (same nesting, statistics,
|
|
23
|
+
* hooks, exporters and options) and adds console-style logging methods.
|
|
24
|
+
* Output uses the browser format:
|
|
25
|
+
*
|
|
26
|
+
* Execution Flow:
|
|
27
|
+
* → parent (12.34ms)
|
|
28
|
+
* → child (10.01ms)
|
|
114
29
|
*/
|
|
115
|
-
class
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
* @param duration - Execution duration in ms
|
|
139
|
-
* @returns Optimization suggestion
|
|
140
|
-
*/
|
|
141
|
-
generateSuggestion(name, duration) {
|
|
142
|
-
if (duration > 500) {
|
|
143
|
-
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Consider optimizing or breaking it down into smaller functions.`;
|
|
144
|
-
}
|
|
145
|
-
else if (duration > 200) {
|
|
146
|
-
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Consider optimizing if called frequently.`;
|
|
147
|
-
}
|
|
148
|
-
else if (duration > 100) {
|
|
149
|
-
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Monitor if called in critical paths.`;
|
|
30
|
+
class BrowserLogger extends optimized_performance_monitor_1.OptimizedPerformanceMonitor {
|
|
31
|
+
constructor(config = {}) {
|
|
32
|
+
super({
|
|
33
|
+
trackingMode: config.trackingMode,
|
|
34
|
+
silent: config.silent,
|
|
35
|
+
trackMemory: config.trackMemory,
|
|
36
|
+
enableNestedTracking: config.enableNestedTracking,
|
|
37
|
+
threshold: config.threshold,
|
|
38
|
+
sampleRate: config.sampleRate,
|
|
39
|
+
enabled: config.enabled,
|
|
40
|
+
blockingThreshold: config.blockingThreshold,
|
|
41
|
+
stats: config.stats,
|
|
42
|
+
plugins: config.plugins,
|
|
43
|
+
onComplete: config.onComplete,
|
|
44
|
+
reporter: config.reporter,
|
|
45
|
+
asyncLocalStorage: config.asyncLocalStorage
|
|
46
|
+
});
|
|
47
|
+
this._mode = 'dev';
|
|
48
|
+
this._indentLevel = 0;
|
|
49
|
+
this._mode = config.mode || 'dev';
|
|
50
|
+
this._slowThreshold = config.performanceThreshold || 100;
|
|
51
|
+
if (!config.reporter) {
|
|
52
|
+
this.setConfig({ reporter: root => console.log(this.formatFlow(root)) });
|
|
150
53
|
}
|
|
151
|
-
return '';
|
|
152
54
|
}
|
|
153
55
|
/**
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
* @param fn - The function to track
|
|
157
|
-
* @param options - Options for tracking
|
|
158
|
-
* @returns The return value of the tracked function
|
|
56
|
+
* Render an execution tree in the browser output format
|
|
159
57
|
*/
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
catch (e) {
|
|
173
|
-
console.warn('Unable to track memory usage:', e);
|
|
58
|
+
formatFlow(root) {
|
|
59
|
+
const lines = ['Execution Flow:'];
|
|
60
|
+
const visit = (record, level) => {
|
|
61
|
+
const indent = ' '.repeat(level);
|
|
62
|
+
const slowThreshold = record.threshold > 0 ? record.threshold : this._slowThreshold;
|
|
63
|
+
const isSlow = record.duration > slowThreshold;
|
|
64
|
+
const memory = record.memoryDelta !== undefined && record.memoryDelta > 0
|
|
65
|
+
? ` [${formatMemorySize(record.memoryDelta)}]` : '';
|
|
66
|
+
lines.push(`${indent}→ ${record.label} (${record.duration.toFixed(2)}ms)${isSlow ? ' [SLOW]' : ''}${memory}`);
|
|
67
|
+
const suggestion = isSlow ? slowSuggestion(record.label, record.duration) : '';
|
|
68
|
+
if (suggestion) {
|
|
69
|
+
lines.push(`${indent} ⚠️ ${suggestion}`);
|
|
174
70
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
// Create execution record
|
|
179
|
-
const execution = {
|
|
180
|
-
name: fnName,
|
|
181
|
-
duration: 0,
|
|
182
|
-
isSlow: false,
|
|
183
|
-
level: this._callStack.length - 1,
|
|
184
|
-
startTime: performance.now(),
|
|
185
|
-
children: [],
|
|
186
|
-
};
|
|
187
|
-
// Set parent-child relationship
|
|
188
|
-
if (this._currentExecution && enableNestedTracking) {
|
|
189
|
-
execution.parent = this._currentExecution;
|
|
190
|
-
this._currentExecution.children.push(execution);
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
// This is a root execution
|
|
194
|
-
this._executions.push(execution);
|
|
195
|
-
}
|
|
196
|
-
// Save the previous current execution
|
|
197
|
-
const previousExecution = this._currentExecution;
|
|
198
|
-
// Set this as the current execution
|
|
199
|
-
this._currentExecution = execution;
|
|
200
|
-
let result;
|
|
201
|
-
try {
|
|
202
|
-
// Execute the function
|
|
203
|
-
result = fn();
|
|
204
|
-
}
|
|
205
|
-
catch (error) {
|
|
206
|
-
// End timing
|
|
207
|
-
const endTime = performance.now();
|
|
208
|
-
execution.endTime = endTime;
|
|
209
|
-
execution.duration = endTime - execution.startTime;
|
|
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
|
-
}
|
|
221
|
-
// Restore the previous current execution
|
|
222
|
-
this._currentExecution = previousExecution;
|
|
223
|
-
// Remove from call stack
|
|
224
|
-
this._callStack.pop();
|
|
225
|
-
// Re-throw the error
|
|
226
|
-
throw error;
|
|
227
|
-
}
|
|
228
|
-
// End timing
|
|
229
|
-
const endTime = performance.now();
|
|
230
|
-
execution.endTime = endTime;
|
|
231
|
-
execution.duration = endTime - execution.startTime;
|
|
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
|
-
}
|
|
243
|
-
// Generate suggestion if slow
|
|
244
|
-
if (execution.isSlow) {
|
|
245
|
-
execution.suggestion = this.generateSuggestion(fnName, execution.duration);
|
|
246
|
-
}
|
|
247
|
-
// Restore the previous current execution
|
|
248
|
-
this._currentExecution = previousExecution;
|
|
249
|
-
// Remove from call stack
|
|
250
|
-
this._callStack.pop();
|
|
251
|
-
return result;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Create a trackable version of a function
|
|
255
|
-
*
|
|
256
|
-
* This is a helper method to create a tracked version of a function
|
|
257
|
-
* that can be used for nested function tracking.
|
|
258
|
-
*
|
|
259
|
-
* @param fn - The function to make trackable
|
|
260
|
-
* @param options - Options for tracking
|
|
261
|
-
* @returns A tracked version of the function
|
|
262
|
-
*/
|
|
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
|
|
271
|
-
const self = this;
|
|
272
|
-
return function (...args) {
|
|
273
|
-
return self.track(() => fn.apply(this, args), {
|
|
274
|
-
...options,
|
|
275
|
-
label,
|
|
276
|
-
threshold,
|
|
277
|
-
enableNestedTracking,
|
|
278
|
-
trackMemory,
|
|
279
|
-
trackingMode
|
|
280
|
-
});
|
|
71
|
+
record.children
|
|
72
|
+
.filter(child => child.duration >= child.threshold)
|
|
73
|
+
.forEach(child => visit(child, level + 1));
|
|
281
74
|
};
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
* Get the current call stack
|
|
285
|
-
*
|
|
286
|
-
* @returns The current call stack
|
|
287
|
-
*/
|
|
288
|
-
getCallStack() {
|
|
289
|
-
return [...this._callStack];
|
|
290
|
-
}
|
|
291
|
-
/**
|
|
292
|
-
* Generate a visual representation of the execution flow
|
|
293
|
-
*
|
|
294
|
-
* @returns ASCII flow chart of the execution
|
|
295
|
-
*/
|
|
296
|
-
generateFlowChart() {
|
|
297
|
-
let result = 'Execution Flow:\n';
|
|
298
|
-
// Process each execution
|
|
299
|
-
this.prepareExecutionData(this._executions).forEach(execution => {
|
|
300
|
-
const indent = ' '.repeat(execution.level);
|
|
301
|
-
const durationStr = execution.duration.toFixed(2);
|
|
302
|
-
const slowMarker = execution.isSlow ? ' [SLOW]' : '';
|
|
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`;
|
|
308
|
-
// Add suggestion if available
|
|
309
|
-
if (execution.suggestion) {
|
|
310
|
-
result += `${indent} ⚠️ ${execution.suggestion}\n`;
|
|
311
|
-
}
|
|
312
|
-
});
|
|
313
|
-
return result;
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Prepare execution data for the flow chart
|
|
317
|
-
*
|
|
318
|
-
* @param executions - The execution records to prepare
|
|
319
|
-
* @returns A list of execution data
|
|
320
|
-
*/
|
|
321
|
-
prepareExecutionData(executions) {
|
|
322
|
-
const result = [];
|
|
323
|
-
// Process each root execution
|
|
324
|
-
executions.forEach(execution => {
|
|
325
|
-
// Add the root execution
|
|
326
|
-
result.push({
|
|
327
|
-
name: execution.name,
|
|
328
|
-
duration: execution.duration,
|
|
329
|
-
isSlow: execution.isSlow,
|
|
330
|
-
suggestion: execution.suggestion,
|
|
331
|
-
level: execution.level,
|
|
332
|
-
memoryUsage: execution.memoryUsage
|
|
333
|
-
});
|
|
334
|
-
// Add children recursively
|
|
335
|
-
this.addChildrenToResult(execution.children, result);
|
|
336
|
-
});
|
|
337
|
-
return result;
|
|
338
|
-
}
|
|
339
|
-
/**
|
|
340
|
-
* Add children to the result list
|
|
341
|
-
*
|
|
342
|
-
* @param children - The children to add
|
|
343
|
-
* @param result - The result list
|
|
344
|
-
*/
|
|
345
|
-
addChildrenToResult(children, result) {
|
|
346
|
-
children.forEach(child => {
|
|
347
|
-
// Add the child
|
|
348
|
-
result.push({
|
|
349
|
-
name: child.name,
|
|
350
|
-
duration: child.duration,
|
|
351
|
-
isSlow: child.isSlow,
|
|
352
|
-
suggestion: child.suggestion,
|
|
353
|
-
level: child.level,
|
|
354
|
-
memoryUsage: child.memoryUsage
|
|
355
|
-
});
|
|
356
|
-
// Add grandchildren recursively
|
|
357
|
-
this.addChildrenToResult(child.children, result);
|
|
358
|
-
});
|
|
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
|
-
}
|
|
379
|
-
/**
|
|
380
|
-
* Clear all execution records
|
|
381
|
-
*/
|
|
382
|
-
clear() {
|
|
383
|
-
this._executions = [];
|
|
384
|
-
this._currentExecution = null;
|
|
385
|
-
this._callStack = [];
|
|
386
|
-
}
|
|
387
|
-
}
|
|
388
|
-
exports.BrowserExecutionTracker = BrowserExecutionTracker;
|
|
389
|
-
/**
|
|
390
|
-
* Browser-compatible logger
|
|
391
|
-
*/
|
|
392
|
-
class BrowserLogger {
|
|
393
|
-
constructor(config = {}) {
|
|
394
|
-
this._mode = 'dev';
|
|
395
|
-
this._indentLevel = 0;
|
|
396
|
-
this._trackingMode = exports.TrackingMode.BALANCED;
|
|
397
|
-
this._mode = config.mode || 'dev';
|
|
398
|
-
this._trackingMode = config.trackingMode || exports.TrackingMode.BALANCED;
|
|
399
|
-
this._executionTracker = new BrowserExecutionTracker({
|
|
400
|
-
defaultThreshold: config.performanceThreshold || 100,
|
|
401
|
-
});
|
|
402
|
-
this._performanceMonitor = new BrowserPerformanceMonitor({
|
|
403
|
-
defaultThreshold: config.performanceThreshold || 100,
|
|
404
|
-
});
|
|
75
|
+
visit(root, 0);
|
|
76
|
+
return lines.join('\n');
|
|
405
77
|
}
|
|
406
78
|
info(message, ...args) {
|
|
407
79
|
this.log('info', message, args);
|
|
@@ -445,63 +117,25 @@ class BrowserLogger {
|
|
|
445
117
|
* @returns This instance for chaining
|
|
446
118
|
*/
|
|
447
119
|
setTrackingMode(mode) {
|
|
448
|
-
|
|
120
|
+
super.setTrackingMode(mode);
|
|
449
121
|
return this;
|
|
450
122
|
}
|
|
451
123
|
/**
|
|
452
|
-
*
|
|
453
|
-
*
|
|
124
|
+
* Create a trackable version of a function. Calls go through `track()`,
|
|
125
|
+
* so nested trackables attach to their caller.
|
|
454
126
|
*/
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
var _a, _b;
|
|
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;
|
|
463
|
-
// Track the function execution
|
|
464
|
-
const result = this._executionTracker.track(fn, {
|
|
127
|
+
createTrackable(fn, options = {}) {
|
|
128
|
+
const label = options.label || fn.name || 'anonymous';
|
|
129
|
+
// Use a regular function so callers keep their own `this`
|
|
130
|
+
const run = (thisArg, args) => this.track(() => fn.apply(thisArg, args), {
|
|
465
131
|
...options,
|
|
466
|
-
|
|
467
|
-
trackingMode
|
|
132
|
+
label
|
|
468
133
|
});
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
const flowChart = this._executionTracker.generateFlowChart();
|
|
472
|
-
console.log(flowChart);
|
|
473
|
-
}
|
|
474
|
-
return result;
|
|
475
|
-
}
|
|
476
|
-
/**
|
|
477
|
-
* Create a trackable version of a function
|
|
478
|
-
*
|
|
479
|
-
* This is a helper method to create a tracked version of a function
|
|
480
|
-
* that can be used for nested function tracking.
|
|
481
|
-
*
|
|
482
|
-
* @param fn - The function to make trackable
|
|
483
|
-
* @param options - Options for tracking
|
|
484
|
-
* @returns A tracked version of the function
|
|
485
|
-
*/
|
|
486
|
-
createTrackable(fn, options) {
|
|
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
|
-
});
|
|
134
|
+
const tracked = function (...args) {
|
|
135
|
+
return run(this, args);
|
|
504
136
|
};
|
|
137
|
+
preserveSignature(tracked, fn);
|
|
138
|
+
return tracked;
|
|
505
139
|
}
|
|
506
140
|
log(level, message, args) {
|
|
507
141
|
// Skip logs based on mode
|
|
@@ -520,7 +154,7 @@ class BrowserLogger {
|
|
|
520
154
|
try {
|
|
521
155
|
formattedMessage = JSON.stringify(message, null, 2);
|
|
522
156
|
}
|
|
523
|
-
catch (
|
|
157
|
+
catch (_a) {
|
|
524
158
|
formattedMessage = String(message);
|
|
525
159
|
}
|
|
526
160
|
}
|
|
@@ -545,12 +179,39 @@ class BrowserLogger {
|
|
|
545
179
|
}
|
|
546
180
|
}
|
|
547
181
|
exports.BrowserLogger = BrowserLogger;
|
|
182
|
+
function formatMemorySize(bytes) {
|
|
183
|
+
if (bytes < 1024) {
|
|
184
|
+
return `${bytes.toFixed(2)}B`;
|
|
185
|
+
}
|
|
186
|
+
else if (bytes < 1024 * 1024) {
|
|
187
|
+
return `${(bytes / 1024).toFixed(2)}KB`;
|
|
188
|
+
}
|
|
189
|
+
else if (bytes < 1024 * 1024 * 1024) {
|
|
190
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)}MB`;
|
|
191
|
+
}
|
|
192
|
+
return `${(bytes / (1024 * 1024 * 1024)).toFixed(2)}GB`;
|
|
193
|
+
}
|
|
194
|
+
function slowSuggestion(name, duration) {
|
|
195
|
+
if (duration > 500) {
|
|
196
|
+
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Consider optimizing or breaking it down into smaller functions.`;
|
|
197
|
+
}
|
|
198
|
+
else if (duration > 200) {
|
|
199
|
+
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Consider optimizing if called frequently.`;
|
|
200
|
+
}
|
|
201
|
+
else if (duration > 100) {
|
|
202
|
+
return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Monitor if called in critical paths.`;
|
|
203
|
+
}
|
|
204
|
+
return '';
|
|
205
|
+
}
|
|
548
206
|
/**
|
|
549
207
|
* Create a browser-compatible logger instance
|
|
550
208
|
* @param config Configuration options
|
|
551
209
|
* @returns Browser logger instance
|
|
552
210
|
*/
|
|
553
211
|
function createBrowserLogger(config = {}) {
|
|
212
|
+
if (config.logger instanceof BrowserLogger) {
|
|
213
|
+
return config.logger;
|
|
214
|
+
}
|
|
554
215
|
return new BrowserLogger(config);
|
|
555
216
|
}
|
|
556
217
|
/**
|
|
@@ -566,16 +227,28 @@ function createTracePerf(config = {}) {
|
|
|
566
227
|
const browserLogger = createBrowserLogger();
|
|
567
228
|
// Export the default instance
|
|
568
229
|
exports.default = browserLogger;
|
|
569
|
-
//
|
|
230
|
+
// Plugins and exporters that work in browsers
|
|
231
|
+
var timeline_1 = require("./core/timeline");
|
|
232
|
+
Object.defineProperty(exports, "performanceTimeline", { enumerable: true, get: function () { return timeline_1.performanceTimeline; } });
|
|
233
|
+
var exporters_1 = require("./core/exporters");
|
|
234
|
+
Object.defineProperty(exports, "toChromeTrace", { enumerable: true, get: function () { return exporters_1.toChromeTrace; } });
|
|
235
|
+
Object.defineProperty(exports, "jsonLinesExporter", { enumerable: true, get: function () { return exporters_1.jsonLinesExporter; } });
|
|
236
|
+
Object.defineProperty(exports, "openTelemetryExporter", { enumerable: true, get: function () { return exporters_1.openTelemetryExporter; } });
|
|
237
|
+
Object.defineProperty(exports, "recordToJSON", { enumerable: true, get: function () { return exporters_1.recordToJSON; } });
|
|
238
|
+
var records_1 = require("./core/records");
|
|
239
|
+
Object.defineProperty(exports, "formatTree", { enumerable: true, get: function () { return records_1.formatTree; } });
|
|
240
|
+
var instrument_1 = require("./instrument");
|
|
241
|
+
Object.defineProperty(exports, "instrumentFetch", { enumerable: true, get: function () { return instrument_1.instrumentFetch; } });
|
|
242
|
+
// <cjs-compat>
|
|
243
|
+
// CommonJS compatibility (stripped from the ESM build)
|
|
570
244
|
if (typeof module !== 'undefined' && module.exports) {
|
|
571
|
-
module.exports = Object.assign(browserLogger, {
|
|
245
|
+
module.exports = Object.assign(browserLogger, module.exports, {
|
|
572
246
|
default: browserLogger,
|
|
573
247
|
createBrowserLogger,
|
|
574
248
|
createTracePerf,
|
|
575
249
|
BrowserLogger,
|
|
576
|
-
BrowserPerformanceMonitor,
|
|
577
|
-
BrowserExecutionTracker,
|
|
578
250
|
TrackingMode: exports.TrackingMode
|
|
579
251
|
});
|
|
580
252
|
}
|
|
253
|
+
// </cjs-compat>
|
|
581
254
|
//# 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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"}
|