Require Profiler Plugin

The Require Profiler plugin tracks how long each require() call takes while your app starts up, and shows the result as a flame graph — so you can see exactly which modules are slowing down your app's Time to Interactive.
Installation
Make sure to go through the Getting Started guide before installing the plugin.
Enable the Metro instrumentation:
Add the DevTools hook to your app:
Usage
Once configured, "Metro Require Profiler" appears in your React Native DevTools sidebar, showing a flame graph of every module loaded during startup.
- Color reflects timing: red modules took over 70% of the slowest module's time; blue modules were fast.
- Click a module to zoom into that part of the tree, or open its detail panel for evaluation time, path, dependency count, and importing modules.
- The header shows total initialization time, module count, and the entry point.
- Use the filter (⚙️ in the header) to hide chains under a duration threshold — start around 100ms to focus on what actually matters for startup time.
What to look for
Wide, red, or deeply nested modules are your best candidates for optimization. Once you've found one that isn't needed immediately, defer it with a conditional or lazy require():
Re-run the profiler after each change to confirm the improvement and catch regressions.
Next: Learn about Plugin Development, or explore other Official Plugins.
