Writing a .NET Garbage Collector in C# - Part 7: Marking handles
Explains how to implement the GC handle marking phase for a custom .NET garbage collector written in C#, focusing on handle storage design.
Kevin Gosse is a Microsoft MVP and .NET expert specializing in performance, debugging, and memory management.
53 articles from this blog
Explains how to implement the GC handle marking phase for a custom .NET garbage collector written in C#, focusing on handle storage design.
Continues a series on building a .NET garbage collector in C#, focusing on implementing the mark and sweep phases.
A developer investigates a Visual Studio deadlock using profiling tools and memory dumps, revealing an unexpected thread suspension issue.
Explains how to implement .NET profiler function hooks using the Silhouette library, covering tracing vs. sampling profilers and low-level challenges.
A developer details building a custom profiler tool to measure and visualize UI responsiveness and typing latency in ReSharper for performance optimization.
Explains how to implement the mark phase of a .NET garbage collector in C# by walking the reference graph using GCDesc structures.
Announcement and detailed discussion of the 2nd edition of the book 'Pro .NET Memory Management', covering .NET GC and memory topics.
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.
Part 5 of a series on building a .NET profiler in C#, focusing on using the Silhouette library to create a simple CPU profiler.
A guide for .NET developers on implementing Windows Error Reporting (WER) crash handlers to collect crash telemetry in applications.
A developer investigates a segmentation fault in a .NET crash-analyzer tool, detailing the debugging process on Linux using WinDbg.
Introducing GummyCat, a new open-source tool for visualizing the .NET garbage collector's memory layout and activity.
Explores unsupported methods to dump and analyze the .NET managed heap from within a C# application, detailing internal memory structures.
Explores the hidden .NET API for creating and using frozen segments to store managed objects in native memory for performance.
Explores the performance impact and technical details of memory alignment for double arrays in .NET, including benchmarks.
Explains the .NET 5 SuppressGCTransition attribute for optimizing P/Invoke performance, including benchmarks and important caveats.
Explains how to write a .NET profiler in C# by implementing ICorProfilerInfo to call native methods from a managed wrapper.