Skip to content
Back

React Native performance audit

Stuttering lists, a frozen tab, a battery that melts: React Native performance can be measured, understood and fixed. Before optimising, I measure. At Odisei Music the result was steady 120 fps, CPU down 40%, memory down 20%.

The method: measure first

An audit starts with measurements on your real screens, low-end devices included: re-render profiling, JS thread and native, memory, startup time. Every issue is quantified and reproduced before being fixed. No gut-feeling optimisation, no cosmetic refactor.

Odisei Music: the reference case

On Android, some screens lost 40 to 50% of their frame rate, switching between two tabs froze the interface, and lists slowed down screen loading. After measuring and fixing: steady 120 fps with no drop, freeze gone, lists rebuilt with Legend List, CPU down 40% and memory down 20%, through an atomic split of the components. Every figure comes from a before/after measurement on a real device.

The causes I meet most often

A JS thread blocked by synchronous work, cascading re-renders for lack of component boundaries, an unvirtualised list or a giant ScrollView, a 4,000 px image in an 80 px thumbnail, sequential requests that could run in parallel, animations driven from the JS thread. The network is rarely guilty: the profiler settles it before anyone blames 4G.

What you receive

A prioritised report: root causes, their measured cost, and the fix plan ordered by return. I can then apply the fixes myself or support your team doing it, with before/after measurements.

How an audit runs

A first call to frame the symptoms and the screens that matter. Then the measurements, on your builds and your devices, low-end ones included. The report comes with the figures and the order of fixes. Then, your choice: I fix, or your team fixes with my support, and we measure again to check that every gain is real.

What I do

  • Full profiling: re-renders, JS thread, native, memory, startup.
  • Lists and scroll: virtualisation, Legend List, images.
  • Animations: Reanimated, worklets, frame budget at 60 and 120 Hz.
  • Bundle and startup: lazy loading, Hermes, JS size.
  • Prioritised, costed report, then fixes, measured before/after.

Frequent questions

Which tools do you measure with?

The React profiler for re-renders, the Hermes sampling profiler for the JS thread, Xcode Instruments and the Android Studio profiler for native code and memory, Perfetto for system traces. The right tool depends on the symptom; the principle never changes: reproduce, measure, fix, measure again.

Which symptoms justify an audit?

A stuttering scroll, slow screens, an app that heats up or drains the battery, memory crashes, startup beyond two seconds. If your users can feel it, it can be measured, and if it can be measured, it can be fixed.

How long does an audit take?

The initial diagnosis usually fits in a week. Fixing depends on the findings: sometimes two days handle the bulk of the problem, sometimes it is a project we plan together, ordered by return.

Which apps do you work on?

Any React Native or Expo app in production or preproduction, including inherited or AI-generated codebases. The entry point is the same: reproduce, measure, fix.

Get in touch

Got a project in mind?

Guaranteed reply within the hour, plus a free thirty-minute video audit.

Email meMaltLinkedIn

Emailcontact@magrin.fr

Phone+33 6 73 12 19 30

Based inParis, France · fully remote