react-render-profiler 0.1.0 → 0.1.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/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,GAAG;IACjF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;CAC7C,CAAC;AAyDF,eAAO,MAAM,iBAAiB,kBACb,MAAM,YACZ,qBAAqB,KAC7B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAEjD,KAAK,UAAU,GAAG;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,KAAK,IAAI,CAAC;CACvD,CAAC;AAEF,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,IAAI,CAAC,qBAAqB,EAAE,SAAS,CAAC,GAAG;IACjF,OAAO,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;CAC7C,CAAC;AAyDF,eAAO,MAAM,iBAAiB,kBACb,MAAM,YACZ,qBAAqB,KAC7B,IAkFF,CAAC;AAEF,eAAO,MAAM,kBAAkB,oHAe9B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -41,23 +41,23 @@ const useRenderProfiler = (componentName, options = {}) => {
|
|
|
41
41
|
const { groupByComponent = false, reportAfterMs = 3000, logEachRender = false, enabled = true, logger = defaultLogger } = options;
|
|
42
42
|
const renderStartRef = (0, react_1.useRef)(0);
|
|
43
43
|
const instanceRenderCountRef = (0, react_1.useRef)(0);
|
|
44
|
+
const renderGenerationRef = (0, react_1.useRef)(0);
|
|
44
45
|
const statsRef = (0, react_1.useRef)(createEmptyStats());
|
|
45
46
|
if (groupByComponent && !groupedStatsStore.has(componentName)) {
|
|
46
47
|
groupedStatsStore.set(componentName, createEmptyStats());
|
|
47
48
|
}
|
|
48
49
|
const activeStats = groupByComponent ? groupedStatsStore.get(componentName) : statsRef.current;
|
|
50
|
+
// Record render start during render; count and measure in useEffect so totals match per-render
|
|
51
|
+
// durations. A render-generation token in the effect deps forces the effect to run after every
|
|
52
|
+
// profiled render. Without it, rerenders with the same logger/options leave deps unchanged, so React
|
|
53
|
+
// skips the effect while render-only counting would still advance — producing avg/total/min/max that
|
|
54
|
+
// disagree. Dev Strict Mode can also widen that gap by extra render passes before commit.
|
|
49
55
|
if (enabled) {
|
|
50
56
|
const now = performance.now();
|
|
51
57
|
renderStartRef.current = now;
|
|
52
|
-
|
|
53
|
-
instanceRenderCountRef.current += 1;
|
|
54
|
-
if (instanceRenderCountRef.current === 1) {
|
|
55
|
-
activeStats.initialRenders += 1;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
activeStats.rerenders += 1;
|
|
59
|
-
}
|
|
58
|
+
renderGenerationRef.current += 1;
|
|
60
59
|
}
|
|
60
|
+
const renderGeneration = renderGenerationRef.current;
|
|
61
61
|
(0, react_1.useEffect)(() => {
|
|
62
62
|
if (!enabled) {
|
|
63
63
|
return;
|
|
@@ -65,6 +65,14 @@ const useRenderProfiler = (componentName, options = {}) => {
|
|
|
65
65
|
const end = performance.now();
|
|
66
66
|
const renderDuration = end - renderStartRef.current;
|
|
67
67
|
const stats = activeStats;
|
|
68
|
+
instanceRenderCountRef.current += 1;
|
|
69
|
+
stats.renders += 1;
|
|
70
|
+
if (instanceRenderCountRef.current === 1) {
|
|
71
|
+
stats.initialRenders += 1;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
stats.rerenders += 1;
|
|
75
|
+
}
|
|
68
76
|
stats.totalMs += renderDuration;
|
|
69
77
|
stats.minMs = Math.min(stats.minMs, renderDuration);
|
|
70
78
|
stats.maxMs = Math.max(stats.maxMs, renderDuration);
|
|
@@ -87,7 +95,16 @@ const useRenderProfiler = (componentName, options = {}) => {
|
|
|
87
95
|
stats.timerId = null;
|
|
88
96
|
}
|
|
89
97
|
};
|
|
90
|
-
}, [
|
|
98
|
+
}, [
|
|
99
|
+
activeStats,
|
|
100
|
+
componentName,
|
|
101
|
+
enabled,
|
|
102
|
+
groupByComponent,
|
|
103
|
+
logEachRender,
|
|
104
|
+
logger,
|
|
105
|
+
reportAfterMs,
|
|
106
|
+
renderGeneration
|
|
107
|
+
]);
|
|
91
108
|
};
|
|
92
109
|
exports.useRenderProfiler = useRenderProfiler;
|
|
93
110
|
const withRenderProfiler = (WrappedComponent, options = {}) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|