Monitor GC stats with a startup hook
Explains how to use .NET startup hooks to monitor garbage collection statistics by injecting a polling thread into applications.
Kevin Gosse is a Microsoft MVP and .NET expert specializing in performance, debugging, and memory management.
53 articles from this blog
Explains how to use .NET startup hooks to monitor garbage collection statistics by injecting a polling thread into applications.
Explains how to check if .NET Core GC verbose events are enabled on a live Linux server without using a debugger, by reading process memory.
A list of critical C# performance pitfalls and code patterns to avoid, drawn from real-world production issues at Criteo.
Explains .NET ThreadPool starvation, how synchronous waiting on async tasks causes it, and why queuing exacerbates the problem.
A developer builds a Raspberry Pi system that pauses a video when their training bike speed drops, inspired by the movie Speed.
A modern C# approach using custom awaiters to simplify switching to the UI thread in WPF/UWP applications.
A developer investigates and reverse-engineers a forced restart notification from corporate IT software to find a workaround.
Explores using ClrMD to dump stack objects from .NET threads, comparing Windows and Linux behavior and uncovering a platform-specific limitation.
A developer explains the mindset and methodology behind debugging by walking through a real-world fix for the Twitch desktop client.
A guide to creating cross-platform debugger extensions using ClrMDExports for both WinDbg and LLDB, enabling .NET debugging on Linux.
Explores .NET Core startup hooks for injecting code at app launch, demonstrating pranks like inverting console output and modifying Array.Empty.
Explores the challenges of implementing Java's ReferenceQueue and PhantomReference concepts in C# for garbage collection notification.
A deep dive into optimizing WinDbg's DML parser, revealing a performance bottleneck in StringBuilder character access.