Compose Recomposer Profiling & Performance Analysis

Compose Recomposer Profiler & Performance Guide

1. Recomposer Event Profiler

Recomposer는 다음 이벤트를 기록한다:

  • Snapshot state reads/writes
  • Group dirty marking
  • applyChanges duration
  • Skipped recompositions
  • Frame scheduling delays

You can monitor them using:

adb shell setprop debug.compose.log.recomposer true

2. UI Thread / Recomposer Thread 분석

Recomposer는 coroutine 기반이므로, scheduler profiling도 중요하다.

관찰 포인트:

  • frame boundary timing
  • choreographer-driven delays
  • skipped compositions
  • Long applyChanges blocks

3. CompositionLocal이 성능에 미치는 영향

CompositionLocal is fast unless:

  • Local value changes frequently
  • Many composables read the same Local
  • Provider deeply nested

4. Frame Analysis Diagram

FrameStart →
    RunPendingWork →
        Snapshot apply →
            Recompose →
                Layout →
                    Draw →
FrameEnd

CompositionLocal 변경은 “Recompose” 단계만 영향을 준다.

5. Tools for Profiling

  • Android Studio Layout Inspector (Live Compose Tree)
  • Systrace / Perfetto
  • compose-runtime tracing flags
  • Compiler IR dump + tracing integration