Make your composition pause
summary
Compose runtime introduces pausable composition in the upcoming Compose 1.10 that splits the heavy initial composition across frames by using compiler-emitted restartable/skippable boundaries (requires Kotlin 2.2 defaults). Composition typically spends ~70% of time executing and ~30% applying changes; pausing lets lazy-list prefetch compose items incrementally between frames, reducing large blocking composition blocks and improving scroll smoothness in tested apps. API exposes a precomposition flow from Subcompose-style state, and future work explores background composition + main-thread apply.
AI-written summary · about
chapters (13)
- 0:00Introduction to composition
- 1:46Performance optimization categories
- 2:28Scroll performance issues 2022
- 4:58Multithreading composition experiments
- 7:51Deferred content approach
- 10:42Compose 1.3 to 1.9 improvements
- 11:42Scheduling composition 2024
- 13:47Compose phases explained
- 16:36Restartable and skippable functions
- 18:44Possible composition feature
- 19:47Prefetch with possible composition
- 23:41Possible composition frame splits
- 24:23Possible composition uses
related talks
30mMake your composition pause
37mPerformance in Compose:Lessons learned from Lazy layouts
40mThe Compose Runtime, Demystified
28mCompose at Scale: Stop Unnecessary Recomposition
29mCompose
21mPerformance best practices for Jetpack Compose
40mJetpack Compose Mechanisms
41mDemystifying the Compose Runtime & Compiler
