A sub-millisecond GC for .NET?
a year ago
- #.NET
- #Performance
- #Garbage Collection
- Introduction of Satori, an experimental Garbage Collector (GC) for .NET, showing significant performance improvements.
- Key improvements include 50x better median pause time, >100x better 99th percentile pause times, and 3x better heap size.
- Garbage collection is crucial for memory management in high-level languages like C#/.NET, Java, and Go, but not in lower-level languages like Rust and C/C++.
- GCs can cause disruptive 'stop the world' pauses, affecting application performance, especially in high-throughput scenarios.
- Historical evolution of .NET GC from Workstation GC to Server GC, with innovations like Concurrent and Background GC.
- Comparison with other ecosystems, notably Go's GC, which offers extremely low pause times, sparking envy among .NET developers.
- Satori GC, developed by Vladimir Sadov, promises sub-millisecond pause times, making it competitive with the best in the industry.
- Performance benchmarks show Satori drastically reduces GC time percentage and improves allocation rates and pause times across percentiles.
- Instructions provided to try Satori include building apps targeting .NET 8.0, publishing in self-contained mode, and replacing specific DLLs.
- Encouragement for developers to test Satori in their workloads and provide feedback to influence its development and prioritization.