End the Senseless Killing: Improving Memory Management for Mobile Operating Systems
summary
Marvin implements a runtime-and-OS co-designed memory manager for Android that reintroduces swapping with concrete mechanisms: ahead-of-time (AOT) swap, stubs and a reclamation table, object-granularity working-set tracking, and a swap-aware bookmarking GC. Prototype modifies ART on Pixel XL phones (Android 7.1.1), reclaims 500 MB in ~100 ms, supports >2× active concurrent apps versus stock Android, and reports runtime overheads within ~15% on Java-heavy benchmarks. Source code is on GitHub.
AI-written summary · about
chapters (17)
- 0:00Intro
- 0:22Disclaimers
- 0:44This talk
- 2:43Traditional swapping is not a solution
- 4:58Key insight
- 6:28Stubs
- 7:10Reclamation table
- 7:46Object access interposition
- 9:56Object-level working set estimation
- 11:03Bookmarking garbage collector
- 11:59Marvin implementation
- 12:28Evaluation
- 12:55Does Marvin let users run more apps?
- 14:35Does ahead-of-time swap work?
- 15:26What is Marvin's overhead?
- 16:05Related work
- 17:03Conclusion
related talks
07mAndroid memory tools and best practices
49mTrash Talk
36mAndroid memory and games
37mMemory Hotplug on Android
39mUnderstanding Android memory usage
38mOptimize your app performance for the next generation of Android
38mOptimize your app performance for the next generation of Android
35mKeynote: Trash Talk: The Evolution of Android Garbage Collection
