Profiling collects data while someone uses an app, helping teams find performance problems and check app health. The guests describe bottlenecks, growing memory use, and battery drain as issues to investigate. They stress that measurements need context: high CPU use may be expected for some tasks, but can be a warning when ordinary interactions cause it.
Profiling in native and React Native
Speakers
Callstack performance specialists Medu and Jakubinda, known as JB, join host Lucas on React Native Show to discuss profiling React Native, iOS, and Android apps.
The discussion covers response and render times, frame drops, memory, CPU, network, and user engagement. At 60 FPS, each frame has about 16 milliseconds to render; missed frames can make an animation appear to skip. React DevTools Profiler and Hermes Profiler help trace rendering and JavaScript work, while Why Did You Render, React Native Performance Monitor, Flashlight, and Reassure address repeated renders, FPS, release builds, or performance regressions.
For Android, the guests recommend Android Studio Profiler for CPU, memory, and thread data, plus system traces, Logcat, Macrobenchmark, and Microbenchmark. For iOS, they describe Xcode’s overview and Instruments for examining CPU, memory, network, and other activity. They note that the tools differ, but the underlying metrics and reasoning transfer across platforms.
The guests suggest using user feedback, QA reports, and production user flows to identify screens that may be slow or lose users. From there, profile important paths, investigate suspicious metrics, fix issues, and keep checking for regressions with tools such as Reassure or Android benchmarks. Their approaches differ: one starts with Flipper or a familiar profiler, while another starts with a broad native overview and follows clues.
Takeaways
- Tie performance measurements to user actions and app behavior before deciding that a number is a problem.
- Use production feedback and user flow data to find paths worth profiling.
- Start with a profiler your team can use, then follow evidence into React Native or native tools.
- Profile release builds and repeat checks to catch regressions after fixes.
- Use 16 milliseconds per frame as a reference point for apps targeting 60 FPS.
Mentioned in this talk
Search inside this talk
What was claimed 14
- works atMedu works at Callstack Team
“I’m working here at Callstack”
YouTube Unverified1 source· Talk
- featureJakubinda: Focuses on performance improvement in his daily work
“I mainly focus on performance improvement in my daily work”
YouTube Unverified1 source· Talk
- works atJakubinda works at Callstack Team
“I’ve been here for a couple of years already”
YouTube Unverified1 source· Talk
- metricprofiling: At 60 FPS, each frame should be rendered in about 16 milliseconds
“each frame should be rendered in 16 milliseconds”
YouTube Unverified1 source· Talk
- usesReassure uses React Profiler
“wrap everything with a React Profiler component”
17:50inReassure - Open Source performance regression measurement toolYouTube Verified2 sources· Talk
- featureReact Profiler: Shows component render times and flame charts for analyzing component bottlenecks
“you can see how long your component takes to render”
YouTube Unverified1 source· Talk
- featureHermes Profiler: Shows JavaScript bytecode details, including function names
“it shows more data related to the JavaScript bytecode”
YouTube Unverified1 source· Talk
- featureReact Native Performance Monitor: Records JavaScript-side and UI-side FPS during an action
“showing how your FPS on the JS and UI sides behave”
YouTube Unverified1 source· Talk





