Skip to content

Commit 2bccf63

Browse files
committed
[Perf Tracks]: Clear potentially large measures (#34803)
Fixes #34770. We need to clear measures at some point, otherwise all these copies of props that we end up recording will allocate too much memory in Chromium. This adds `performance.clearMeasures(...)` calls to such cases in DEV. Validated that entries are still shown on Performance panel timeline. DiffTrain build for [b9ec735](b9ec735)
1 parent 0ab9291 commit 2bccf63

34 files changed

+826
-824
lines changed

compiled/facebook-www/REVISION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
47905a79507f9ae5fc1bf633f7cbbd1894b9523b
1+
b9ec735de248f46da181afbc12aa906422be0dba
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
47905a79507f9ae5fc1bf633f7cbbd1894b9523b
1+
b9ec735de248f46da181afbc12aa906422be0dba

compiled/facebook-www/React-dev.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1460,7 +1460,7 @@ __DEV__ &&
14601460
exports.useTransition = function () {
14611461
return resolveDispatcher().useTransition();
14621462
};
1463-
exports.version = "19.3.0-www-classic-47905a79-20251013";
1463+
exports.version = "19.3.0-www-classic-b9ec735d-20251013";
14641464
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
14651465
"function" ===
14661466
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-dev.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1460,7 +1460,7 @@ __DEV__ &&
14601460
exports.useTransition = function () {
14611461
return resolveDispatcher().useTransition();
14621462
};
1463-
exports.version = "19.3.0-www-modern-47905a79-20251013";
1463+
exports.version = "19.3.0-www-modern-b9ec735d-20251013";
14641464
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
14651465
"function" ===
14661466
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-prod.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,4 +606,4 @@ exports.useSyncExternalStore = function (
606606
exports.useTransition = function () {
607607
return ReactSharedInternals.H.useTransition();
608608
};
609-
exports.version = "19.3.0-www-classic-47905a79-20251013";
609+
exports.version = "19.3.0-www-classic-b9ec735d-20251013";

compiled/facebook-www/React-prod.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,4 +606,4 @@ exports.useSyncExternalStore = function (
606606
exports.useTransition = function () {
607607
return ReactSharedInternals.H.useTransition();
608608
};
609-
exports.version = "19.3.0-www-modern-47905a79-20251013";
609+
exports.version = "19.3.0-www-modern-b9ec735d-20251013";

compiled/facebook-www/React-profiling.classic.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,7 @@ exports.useSyncExternalStore = function (
610610
exports.useTransition = function () {
611611
return ReactSharedInternals.H.useTransition();
612612
};
613-
exports.version = "19.3.0-www-classic-47905a79-20251013";
613+
exports.version = "19.3.0-www-classic-b9ec735d-20251013";
614614
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
615615
"function" ===
616616
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/React-profiling.modern.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -610,7 +610,7 @@ exports.useSyncExternalStore = function (
610610
exports.useTransition = function () {
611611
return ReactSharedInternals.H.useTransition();
612612
};
613-
exports.version = "19.3.0-www-modern-47905a79-20251013";
613+
exports.version = "19.3.0-www-modern-b9ec735d-20251013";
614614
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
615615
"function" ===
616616
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

compiled/facebook-www/ReactART-dev.classic.js

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1495,7 +1495,8 @@ __DEV__ &&
14951495
reusableComponentOptions
14961496
)
14971497
)
1498-
: performance.measure(trigger, reusableComponentOptions));
1498+
: performance.measure(trigger, reusableComponentOptions),
1499+
performance.clearMeasures(trigger));
14991500
}
15001501
function logComponentReappeared(fiber, startTime, endTime) {
15011502
logComponentTrigger(fiber, startTime, endTime, "Reconnect");
@@ -1514,7 +1515,7 @@ __DEV__ &&
15141515
if (null === alternate || alternate.child !== fiber.child)
15151516
for (var child = fiber.child; null !== child; child = child.sibling)
15161517
selfTime -= child.actualDuration;
1517-
wasHydrated =
1518+
selfTime =
15181519
0.5 > selfTime
15191520
? wasHydrated
15201521
? "tertiary-light"
@@ -1529,11 +1530,11 @@ __DEV__ &&
15291530
: "primary-dark"
15301531
: "error";
15311532
var props = fiber.memoizedProps;
1532-
selfTime = fiber._debugTask;
1533+
wasHydrated = fiber._debugTask;
15331534
null !== props &&
15341535
null !== alternate &&
15351536
alternate.memoizedProps !== props
1536-
? ((child = [resuableChangedPropsEntry]),
1537+
? ((child = [reusableChangedPropsEntry]),
15371538
(props = addObjectDiffToProperties(
15381539
alternate.memoizedProps,
15391540
props,
@@ -1550,33 +1551,32 @@ __DEV__ &&
15501551
(reusableComponentDevToolDetails.color = "warning"),
15511552
(reusableComponentDevToolDetails.tooltipText =
15521553
"This component received deeply equal props. It might benefit from useMemo or the React Compiler in its owner."))
1553-
: ((reusableComponentDevToolDetails.color = wasHydrated),
1554+
: ((reusableComponentDevToolDetails.color = selfTime),
15541555
(reusableComponentDevToolDetails.tooltipText = name)),
15551556
(reusableComponentDevToolDetails.properties = child),
15561557
(reusableComponentOptions.start = startTime),
15571558
(reusableComponentOptions.end = endTime),
1558-
null != selfTime
1559-
? selfTime.run(
1559+
(fiber = "\u200b" + name),
1560+
null != wasHydrated
1561+
? wasHydrated.run(
15601562
performance.measure.bind(
15611563
performance,
1562-
"\u200b" + name,
1564+
fiber,
15631565
reusableComponentOptions
15641566
)
15651567
)
1566-
: performance.measure(
1567-
"\u200b" + name,
1568-
reusableComponentOptions
1569-
))
1570-
: null != selfTime
1571-
? selfTime.run(
1568+
: performance.measure(fiber, reusableComponentOptions),
1569+
performance.clearMeasures(fiber))
1570+
: null != wasHydrated
1571+
? wasHydrated.run(
15721572
console.timeStamp.bind(
15731573
console,
15741574
name,
15751575
startTime,
15761576
endTime,
15771577
"Components \u269b",
15781578
void 0,
1579-
wasHydrated
1579+
selfTime
15801580
)
15811581
)
15821582
: console.timeStamp(
@@ -1585,18 +1585,18 @@ __DEV__ &&
15851585
endTime,
15861586
"Components \u269b",
15871587
void 0,
1588-
wasHydrated
1588+
selfTime
15891589
))
1590-
: null != selfTime
1591-
? selfTime.run(
1590+
: null != wasHydrated
1591+
? wasHydrated.run(
15921592
console.timeStamp.bind(
15931593
console,
15941594
name,
15951595
startTime,
15961596
endTime,
15971597
"Components \u269b",
15981598
void 0,
1599-
wasHydrated
1599+
selfTime
16001600
)
16011601
)
16021602
: console.timeStamp(
@@ -1605,7 +1605,7 @@ __DEV__ &&
16051605
endTime,
16061606
"Components \u269b",
16071607
void 0,
1608-
wasHydrated
1608+
selfTime
16091609
);
16101610
}
16111611
}
@@ -1652,11 +1652,11 @@ __DEV__ &&
16521652
}
16531653
}
16541654
};
1655+
name = "\u200b" + name;
16551656
debugTask
1656-
? debugTask.run(
1657-
performance.measure.bind(performance, "\u200b" + name, fiber)
1658-
)
1659-
: performance.measure("\u200b" + name, fiber);
1657+
? debugTask.run(performance.measure.bind(performance, name, fiber))
1658+
: performance.measure(name, fiber);
1659+
performance.clearMeasures(name);
16601660
}
16611661
}
16621662
}
@@ -1693,15 +1693,14 @@ __DEV__ &&
16931693
}
16941694
}
16951695
};
1696-
(fiber = fiber._debugTask)
1696+
fiber = fiber._debugTask;
1697+
endTime = "\u200b" + name;
1698+
fiber
16971699
? fiber.run(
1698-
performance.measure.bind(
1699-
performance,
1700-
"\u200b" + name,
1701-
startTime
1702-
)
1700+
performance.measure.bind(performance, endTime, startTime)
17031701
)
1704-
: performance.measure("\u200b" + name, startTime);
1702+
: performance.measure(endTime, startTime);
1703+
performance.clearMeasures(endTime);
17051704
}
17061705
}
17071706
} else
@@ -1862,6 +1861,7 @@ __DEV__ &&
18621861
performance.measure.bind(performance, "Recovered", startTime)
18631862
)
18641863
: performance.measure("Recovered", startTime);
1864+
performance.clearMeasures("Recovered");
18651865
}
18661866
}
18671867
function logErroredRenderPhase(startTime, endTime, lanes, debugTask) {
@@ -1945,6 +1945,7 @@ __DEV__ &&
19451945
performance.measure.bind(performance, "Errored", startTime)
19461946
)
19471947
: performance.measure("Errored", startTime);
1948+
performance.clearMeasures("Errored");
19481949
}
19491950
}
19501951
function logCommitPhase(
@@ -15693,10 +15694,8 @@ __DEV__ &&
1569315694
previousRenderStartTime
1569415695
)
1569515696
)
15696-
: performance.measure(
15697-
isSpawnedUpdate,
15698-
previousRenderStartTime
15699-
));
15697+
: performance.measure(isSpawnedUpdate, previousRenderStartTime),
15698+
performance.clearMeasures(isSpawnedUpdate));
1570015699
}
1570115700
blockingUpdateTime = -1.1;
1570215701
blockingUpdateType = 0;
@@ -15835,7 +15834,8 @@ __DEV__ &&
1583515834
previousRenderStartTime
1583615835
)
1583715836
)
15838-
: performance.measure(debugTask, previousRenderStartTime))),
15837+
: performance.measure(debugTask, previousRenderStartTime),
15838+
performance.clearMeasures(debugTask))),
1583915839
(transitionUpdateTime = transitionStartTime = -1.1),
1584015840
(transitionUpdateType = 0),
1584115841
(transitionSuspendedTime = -1.1),
@@ -18303,7 +18303,7 @@ __DEV__ &&
1830318303
end: -0,
1830418304
detail: { devtools: reusableComponentDevToolDetails }
1830518305
},
18306-
resuableChangedPropsEntry = ["Changed Props", ""],
18306+
reusableChangedPropsEntry = ["Changed Props", ""],
1830718307
reusableDeeplyEqualPropsEntry = [
1830818308
"Changed Props",
1830918309
"This component received deeply equal props. It might benefit from useMemo or the React Compiler in its owner."
@@ -20371,10 +20371,10 @@ __DEV__ &&
2037120371
(function () {
2037220372
var internals = {
2037320373
bundleType: 1,
20374-
version: "19.3.0-www-classic-47905a79-20251013",
20374+
version: "19.3.0-www-classic-b9ec735d-20251013",
2037520375
rendererPackageName: "react-art",
2037620376
currentDispatcherRef: ReactSharedInternals,
20377-
reconcilerVersion: "19.3.0-www-classic-47905a79-20251013"
20377+
reconcilerVersion: "19.3.0-www-classic-b9ec735d-20251013"
2037820378
};
2037920379
internals.overrideHookState = overrideHookState;
2038020380
internals.overrideHookStateDeletePath = overrideHookStateDeletePath;
@@ -20409,7 +20409,7 @@ __DEV__ &&
2040920409
exports.Shape = Shape;
2041020410
exports.Surface = Surface;
2041120411
exports.Text = Text;
20412-
exports.version = "19.3.0-www-classic-47905a79-20251013";
20412+
exports.version = "19.3.0-www-classic-b9ec735d-20251013";
2041320413
"undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&
2041420414
"function" ===
2041520415
typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&

0 commit comments

Comments
 (0)