This is a list of resources I used to learn about virtual machines in general, from an architecture point of view to optimizations and garbage collection strategies. I've also put together some parts into a talk format, you can see the slides here.
Contributions are very welcome!
Table of Contents generated with DocToc
Emoji | Represents |
---|---|
π» | Blog post |
π | White paper |
π | Code |
π€ | Podcast |
π₯ | Slides |
- π₯ Dynamic Compilation and Adaptive Optimization in Virtual Machines - Stephen Fink, David Grove, and Michael Hind
- π On-stack replacement - Soman and Krintz
- π Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches - HΓΆlzle, Chambers and Ungar
- π Adaptive optimization for self: reconciling high performance with exploratory programming - HΓΆlzle
- π A Survey of Adaptive Optimization in Virtual Machines - Arnold, Fink, Grove, Hind and Sweeney
- π A Simple Graph-Based Intermediate Representation - Click
- π Combining Analyses, Combining Optimizations - Click
- π» A tour of V8 garbage collection - Jay Conrod
- V8's compilers resources - Thorsten Lorenz
- V8's garbage collector resources - Thorsten Lorenz
- π₯ TurboFan JIT Design - Ben L. Titzer
- π» Sea of Nodes - Fedor Indutny
- π» Digging into TurboFan JIT - V8's blog
- π» Jank Busters Part One - V8's blog
- π» JavaScript and V8βs TurboFan - Ariya Hidayat
- π Instrumenting V8 to Measure the Efficacy of Dynamic Optimizations on Production Code - Maass and Shafer
- π» V8 resources - Vyacheslav Egorov
- π» Introducing FTL JIT - Webkit blog
- π» Introducing B3 JIT compiler - Webkit blog
- π List of performance hint descriptions - ChakraCore's repository
- π€ Chakra, Microsoft's Open Source JavaScript Engine - JavaScriptAir
- ChakraCore Architecture overview - ChakraCore's wiki
- π» Compacting Garbage Collection in SpiderMonkey - Mozilla Hacks
- π» SpiderMonkey Internals - MDN
- π» PICing on JavaScript for fun and profit - Chris Leary
- π» Back to basic: Series on dynamic memory management - MSDN
- Memory Management Reference
- π A non-recursive list compacting algorithm - Cheney
- π Generation Scavenging - Ungar
- π Reconciling Responsiveness with Performance in Pure Object-Oriented Languages - HΓΆlzle and Ungar
- π Garbage Collection in an Uncooperative Environment - Boehm
- π Garbage Collection with Ambiguous Roots - Bartlett
- π Quantifying the Performance of Garbage Collection vs. Explicit Memory Management - Hertz and Berger
- π 'Infant Mortality' and Generational Garbage Collection - Baker
- π Fast Conservative Garbage Collection - Shahriyar, Blackburn and McKinley