~/talk

Improving LazyColumn performance

Talkat droidcon Berlin 2023 · 2023-07-05..07-07· [android, web-performance]
slides:none on file

Measures run in release with R8 and baseline profiles because debuggable builds and missing precompilation each cost about 2x; tests use a very low-end device (~10x slower than Pixel 7). Misused derived state causes huge overhead—reading two derived states per lazy item can consume ~60% of measure time; coalescing to one read or mapping to simple comparables fixes it. Replacing composed modifiers with modifier node cuts clickable composition from ~1ms to ~0.5ms, yields 20–30% faster creates, and ~50% fewer allocations, enabling view and node reuse.

AI-written summary · about

  1. 0:00Introduction
  2. 1:48LazyColumn performance focus
  3. 3:53Benchmarking best practices
  4. 7:01Optimization strategies in Compose
  5. 8:48Avoiding unnecessary recomposition
  6. 13:20Invalidation scope in Compose
  7. 14:02Derived state pitfalls
  8. 17:52State access cost in Compose
  9. 21:01Modifier node performance
  10. 26:56Lazy layout reuse techniques
  11. 30:23Key takeaways and future work
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.