dillon1000/react

Commit

Add Profiler component for collecting new render timing info (#12745)

Add a new component type, Profiler, that can be used to collect new render time metrics. Since this is a new, experimental API, it will be exported as React.unstable_Profiler initially.

Most of the functionality for this component has been added behind a feature flag, enableProfileModeMetrics. When the feature flag is disabled, the component will just render its children with no additional behavior. When the flag is enabled, React will also collect timing information and pass it to the onRender function (as described below).
Browse files
Changed paths31 files
First-parent comparison
M packages/react-dom/src/server/ReactPartialRenderer.js ModifiedM packages/react-is/src/ReactIs.js ModifiedM packages/react-is/src/__tests__/ReactIs-test.js ModifiedM packages/react-reconciler/src/ReactFiber.js ModifiedM packages/react-reconciler/src/ReactFiberBeginWork.js ModifiedM packages/react-reconciler/src/ReactFiberCommitWork.js ModifiedM packages/react-reconciler/src/ReactFiberCompleteWork.js ModifiedM packages/react-reconciler/src/ReactFiberScheduler.js ModifiedM packages/react-reconciler/src/ReactFiberUnwindWork.js ModifiedA packages/react-reconciler/src/ReactProfilerTimer.js AddedM packages/react-reconciler/src/ReactTypeOfMode.js ModifiedM packages/react-reconciler/src/__tests__/ReactIncrementalPerf-test.internal.js ModifiedM packages/react-reconciler/src/__tests__/__snapshots__/ReactIncrementalPerf-test.internal.js.snap ModifiedM packages/react-test-renderer/src/ReactTestRenderer.js ModifiedM packages/react-test-renderer/src/__tests__/ReactShallowRenderer-test.js ModifiedM packages/react-test-renderer/src/__tests__/ReactTestRendererTraversal-test.js ModifiedM packages/react/src/React.js ModifiedA packages/react/src/__tests__/ReactProfiler-test.internal.js AddedA packages/react/src/__tests__/__snapshots__/ReactProfiler-test.internal.js.snap AddedM packages/shared/ReactFeatureFlags.js ModifiedM packages/shared/ReactSymbols.js ModifiedM packages/shared/ReactTypeOfWork.js ModifiedM packages/shared/forks/ReactFeatureFlags.native-fabric-fb.js ModifiedM packages/shared/forks/ReactFeatureFlags.native-fabric-oss.js ModifiedM packages/shared/forks/ReactFeatureFlags.native-fb.js ModifiedM packages/shared/forks/ReactFeatureFlags.native-oss.js ModifiedM packages/shared/forks/ReactFeatureFlags.persistent.js ModifiedM packages/shared/forks/ReactFeatureFlags.test-renderer.js ModifiedM packages/shared/forks/ReactFeatureFlags.www.js ModifiedM packages/shared/getComponentName.js ModifiedM packages/shared/isValidElementType.js Modified
Patch

Files changed

Rendering syntax-highlighted changes…