You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/docs/optimizing-performance.md
+5-26Lines changed: 5 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -156,32 +156,6 @@ You can learn more about this in [webpack documentation](https://webpack.js.org/
156
156
157
157
Remember that you only need to do this for production builds. You shouldn't apply `TerserPlugin` in development because it will hide useful React warnings, and make the builds much slower.
158
158
159
-
## Profiling Components with the Chrome Performance Tab {#profiling-components-with-the-chrome-performance-tab}
160
-
161
-
In the **development** mode, you can visualize how components mount, update, and unmount, using the performance tools in supported browsers. For example:
162
-
163
-
<center><imgsrc="../images/blog/react-perf-chrome-timeline.png"style="max-width:100%"alt="React components in Chrome timeline" /></center>
164
-
165
-
To do this in Chrome:
166
-
167
-
1. Temporarily **disable all Chrome extensions, especially React DevTools**. They can significantly skew the results!
168
-
169
-
2. Make sure you're running the application in the development mode.
170
-
171
-
3. Open the Chrome DevTools **[Performance](https://developers.google.com/web/tools/chrome-devtools/evaluate-performance/timeline-tool)** tab and press **Record**.
172
-
173
-
4. Perform the actions you want to profile. Don't record more than 20 seconds or Chrome might hang.
174
-
175
-
5. Stop recording.
176
-
177
-
6. React events will be grouped under the **User Timing** label.
178
-
179
-
For a more detailed walkthrough, check out [this article by Ben Schwarz](https://calibreapp.com/blog/react-performance-profiling-optimization).
180
-
181
-
Note that **the numbers are relative so components will render faster in production**. Still, this should help you realize when unrelated UI gets updated by mistake, and how deep and how often your UI updates occur.
182
-
183
-
Currently Chrome, Edge, and IE are the only browsers supporting this feature, but we use the standard [User Timing API](https://developer.mozilla.org/en-US/docs/Web/API/User_Timing_API) so we expect more browsers to add support for it.
184
-
185
159
## Profiling Components with the DevTools Profiler {#profiling-components-with-the-devtools-profiler}
186
160
187
161
`react-dom` 16.5+ and `react-native` 0.57+ provide enhanced profiling capabilities in DEV mode with the React DevTools Profiler.
@@ -199,6 +173,11 @@ If you haven't yet installed the React DevTools, you can find them here:
199
173
> A production profiling bundle of `react-dom` is also available as `react-dom/profiling`.
200
174
> Read more about how to use this bundle at [fb.me/react-profiling](https://fb.me/react-profiling)
201
175
176
+
> Note
177
+
>
178
+
> Before React 17, we use the standard [User Timing API](https://developer.mozilla.org/en-US/docs/Web/API/User_Timing_API) to profile components with the chrome performance tab.
179
+
> For a more detailed walkthrough, check out [this article by Ben Schwarz](https://calibreapp.com/blog/react-performance-profiling-optimization).
180
+
202
181
## Virtualize Long Lists {#virtualize-long-lists}
203
182
204
183
If your application renders long lists of data (hundreds or thousands of rows), we recommended using a technique known as "windowing". This technique only renders a small subset of your rows at any given time, and can dramatically reduce the time it takes to re-render the components as well as the number of DOM nodes created.
0 commit comments