Skip to content

Performance

LeoTM edited this page Oct 5, 2025 · 31 revisions

Problems

  • no boot
  • slow tti
  • crash
  • freeze
  • hanging
  • slow response
  • slow rtt
  • stutter (fps)
  • error (un)handled
  • tearing (fps/hz)
  • missing/wrong data
  • abnormal ui
  • high battery (cpu)
  • fat binary/bundle
  • high/leaky ram

Causes

  • source js
    • caching
    • js lib
    • react compiler
  • rn (old/new) arch
  • js engine
    • (webkit/android)jsc/v8/(static)hermes
  • renderer
    • fabric/skia
  • modules
    • (turbo/nitro)modules
  • backend
    • http (rest/gql)
    • websockets (tcp)
    • webrtc (p2p)
  • starvation
    • low battery
    • power save mode
  • user agent
    • blue light filter
    • magnification
  • [threads]
    • hogging main
    • deadlock
    • livelock
    • race condition

Metrics

  • release
    • adoption
    • crash-free sessions
    • new/retained/resurrected/inactive users
    • reviews/rating
  • tti
  • errors
    • (un)handled
    • stacktrace (sourcemaps)
    • events (analytics)
  • renders
  • fps (js/native)
    • nested views
  • cpu
  • ram
  • network
    • rtt
    • downtime
  • battery
  • size
    • apk/ipa
    • js bundle
  • analytics
    • events (single, series)
    • users (data, groups)
  • The only metric that matters to me
  • e2e screens/vids

Tools

App: __DEV__ off - Release perf optimisations on

  • Debug menu > Perf Monitor
  • Hermes sampling profile
  • Flipper RN Debugger
    • breakpoints
    • Chrome profiler > React DevTools > Flame graph
  • iOS: Xcode > Instruments
  • Android: Studio Profiler
    • Systrace Perfetto

Libs

Clone this wiki locally