Category Archives: Dotnet
.NET Threadpool starvation, and how queuing makes it worse
There has been plenty of talk lately about threadpool starvation in .NET: https://blogs.msdn.microsoft.com/vancem/2018/10/16/diagnosing-net-core-threadpool-starvation-with-perfview-why-my-service-is-not-saturating-all-cores-or-seems-to-stall https://blogs.msdn.microsoft.com/vsoservice/?p=17665 or…
Monitor Finalizers, contention and threads in your application
This post of the series details more complicated CLR events related to finalizers and threading.…
How to beat !dumpheap -stat?… with ClrMD
When you are dealing with large memory dumps, figuring out what instances of which types…
Grab ETW Session, Providers and Events
This post of the series shows how to easily listen to CLR events with the…
Replace .NET performance counters by CLR event tracing
This post of our new series shows why performance counters might not be the best…
Extending the new WinDbg, Part 3 – Embedding a C# interpreter
In part 1 and part 2, we’ve seen in detail how to customize the WinDBG…
Performance Counters Hell
On Windows, performance counters are the building blocks of most monitoring dashboards. When you need…
Extending the new WinDbg, Part 2 – Tool windows and command output
In the first part of the series, we saw how to extend the new WinDbg…
ClrMD Part 9 – Deciphering Tasks and Thread Pool items
This post of the series shows how to easily list pending tasks and work items…
ClrMD Part 8 – Spelunking inside the .NET Thread Pool
This post of the series shows how to easily list pending tasks and work items…