A framework for building native applications using React
Animated: Avoid In-Band State Update (#49184)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/49184 D65645985 shipped a refactor to `Animated`, so that it would use a custom `useAnimatedPropsMemo` instead of `useMemo`. This significantly improved update performance by no longer invalidating the `AnimatedProps` on effectively every update to `Animated` components. However, this was measured to increase memory usage. After a few experiments, we identified that use of the in-band state update was responsible for the memory regression. While this requires further root cause investigation, this diff attempts to mitigate the memory regression. This diff introduces a feature flag that enables an implementation that minimizes duplicated work, such as unnecessarily computing `compositeKey` or creating new instances of `AnimatedProps`. In addition, this implementation strives to do so without significantly degrading when an update is interrupted by a concurrent update. Changelog: [General][Changed] - Introduced a feature flag to test an optimization in `Animated` to reduce memory usage. Reviewed By: rickhanlonii Differential Revision: D69135223 fbshipit-source-id: a2699a314625e7570698bc41455b139711cfd7e3
T
Tim Yung committed
fb8a6a5bb08892d9d74c607ec99f4afc9c967b04
Parent: bdb394f
Committed by Facebook GitHub Bot <facebook-github-bot@users.noreply.github.com>
on 2/6/2025, 12:24:37 AM