V8 Garbage Collector
Orinoco, V8’s garbage collector, evolved from a sequential stop-the-world implementation into a mostly parallel and concurrent collector with incremental fallback.
Over the past years the V8 garbage collector (GC) has changed a lot. The Orinoco project has taken a sequential, stop-the-world garbage collector and transformed it into a mostly parallel and concurrent collector with incremental fallback. Note: If you prefer watching a presentation over reading articles, then enjoy the video below! If not, skip the video and read on. Any garbage collector has a few essential tasks that it has to do periodically: Identify live/dead objects Recycle/reuse the memory occupied by dead objects Compact/defragment memory (optional) These tasks can be performed in seq
related reading
- Garbage Collection Techniquescs.cmu.edu
- Fundamentals of garbage collection - .NET | Microsoft Learnlearn.microsoft.com
- Working With SGen | Monomono-project.com
- A Guide to the Go Garbage Collector - The Go Programming Languagego.dev
- Main - Shenandoah - OpenJDK Wikiwiki.openjdk.org
- Avoiding high GC overhead with large heaps | Gopher Academy Blogblog.gopheracademy.com
- Memory Allocation in Go | Melatoninghiant3223.github.io
- Notes on structured concurrency, or: Go statement considered harmful - njs blogvorpus.org
- What is Ownership? - The Rust Programming Languagedoc.rust-lang.org
- Untangling Lifetimes: The Arena Allocator - by Ryan Fleurydgtlgrove.com
- Microtasks and event looptr.javascript.info
- Destroy All Values: Designing Deinitialization in Programming Languages - Faultloregankra.github.io