Writing a .NET Garbage Collector in C# - Part 4
Explains how to traverse the .NET managed heap to implement the mark phase of a custom garbage collector written in C#.
Explains how to traverse the .NET managed heap to implement the mark phase of a custom garbage collector written in C#.
Part 3 of a series on building a .NET Garbage Collector in C#, focusing on adding debugging capabilities to inspect heap objects.
Part 2 of implementing a simple .NET garbage collector in C#, covering native interfaces and a basic handle store.
A technical exploration of writing a custom Garbage Collector for .NET in C# using NativeAOT, focusing on the initial setup and API.
Explains a surprising JavaScript memory leak involving closures and garbage collection, with code examples.
Explores three underappreciated Java 21 features: Generational ZGC, Key Encapsulation Mechanism API, and Code Snippets in JavaDoc.
Explores the hidden .NET API for creating and using frozen segments to store managed objects in native memory for performance.
Explains how to create a ChunkedList<T> in C# to avoid Large Object Heap issues when storing massive amounts of data.
Explores the potential of Kotlin/Wasm for web development, focusing on the upcoming WasmGC feature and its impact on frontend and full-stack Kotlin.
Explains how to measure heap allocations in .NET and reveals that an empty array consumes 24 bytes due to object overhead.
Explains a subtle bug where GC.KeepAlive fails to prevent garbage collection of a delegate in async code involving native methods.
Explains the .NET Garbage Collector's compacting phase, its performance benefits, and the Large Object Heap (LOH).
Explains the ObjectPool pattern in C# for performance optimization, showing how to reuse expensive objects to reduce garbage collection overhead.
A deep dive into how the .NET Garbage Collector works, explaining its phases, generations, and impact on application performance.
Explains why using finalizers in C# is problematic and advocates for IDisposable for deterministic resource cleanup.
Explores four methods for creating arrays in C#, comparing performance and use cases for new, ArrayPool, GC.AllocateArray, and GC.AllocateUninitializedArray.
Explores the deprecation of finalization in JDK 18, detailing its flaws and the future of resource management in Java.
Explains how to reduce memory usage for multiple .NET services on a single machine by disabling server garbage collection.
Explains memory management, the stack, and garbage collection in programming, using examples from C, Go, and Rust.
A developer's notes on learning Go pointers, covering their purpose, connection to garbage collection, encapsulation, and immutability.