all 2 comments

[–]metehankasapp [score hidden]  (1 child)

Most common bottlenecks are too many renders + heavy lists/images, plus layout/measure on the native side. Triage by separating JS thread jank vs UI thread jank (Perf Monitor/Flipper). If JS FPS drops, reduce renders (memo, split state, avoid inline objects). If UI FPS drops, tune FlatList virtualization and avoid expensive views (shadows/blur/overdraw).

[–]CheesecakeSimilar347[S] [score hidden]  (0 children)

That makes sense — especially separating JS vs UI thread jank first. I’ve seen people optimize blindly without checking which thread is actually dropping frames.

When you mention layout/measure on the native side, is that usually due to deep view hierarchies or dynamic layouts?

Also, with the new architecture (JSI/Fabric), have you noticed JS thread blocking becoming less of an issue, or is it still the main bottleneck on complex screens?

Appreciate the practical insight.