Deep Dive into the Compose Compiler
summary
Shows exactly how Compose transforms code into a runtime data structure and what actually changes during recomposition, with concrete numbers and APIs: the slot table stores groups, primitives and references across three arrays, groups allocate pages of max size 64, a hardcoded root and child keys (0 and 1000) appear, and recomposition uses stored recomposition scope objects to find addresses to update. Also covers compiler work: the plugin injects a composer parameter via IR transformers and benchmarks alternative slot implementations like linked lists.
AI-written summary · about
chapters (15)
- 0:00Compose Compiler internals
- 3:20Compose beyond UI examples
- 6:54Compose runtime structure
- 9:43Slot table architecture
- 11:53Slot tables store groups
- 15:46Slot table with gap buffers
- 20:21Debugging slot tables
- 22:52Composer role in composition
- 25:00Recomposer snapshot system
- 28:51IR transformations in Kotlin
- 31:00Creating root groups
- 33:49Recomposition scope tracking
- 36:42Compose runtime breakdown
- 37:25Kotlin plugin transformers
- 40:57Q&A
related talks
48mDeep Dive into the Compose Compiler
41mDemystifying the Compose Runtime & Compiler
49mWhat does Recomposition mean to your app?
55mWhat does Recomposition mean to your app
40mJetpack Compose Mechanisms
28mCompose at Scale: Stop Unnecessary Recomposition
38mWhat does Recomposition mean to your app?
40mThe Compose Runtime, Demystified
