Using GC Efficiently – Part 3

In this article I’ll talk about pinning and weak references – stuff related to GC handles.   (I was planning on talking about finalization in this part of the “Using GC Efficiently” series but since I already covered it in pretty much detail in one of my previous blog entries I won’t repeat it here….


Tools that help diagnose managed memory related issues

I was writing an internal wiki page on performance and thought this info is useful to many external readers as well so here it goes. vadump is a good start. It’s an mstools tool – meaning you can find it on your NT CD under bin\mstools. You can take a snapshot of the process and…


Clearing up some confusion over finalization and other areas in GC

In the WinDev conference that I just went to, there seems to be some confusion over finalization (such as why it even exists and etc) and other areas. I hope the following will clear up that confusion. If not, let me know.   Finalization   1)      Why we have finalization   Finalization is necessary because…


Using GC Efficiently – Part 2

In this article I’ll talk about different flavors of GC, the design goals behind each of them and how they work differently from each other so you can make a good decision of which flavor of GC you should choose for your applications.   Existing GC flavors in the runtime today   We have the…


WinDev in Boston

I am going to WinDev this year to give 2 performance talks. Check out: (it’s from Oct 25 to 29) Below is the description: C5 – CLR PerformanceWrite faster managed code! Learn about performance engineering, tools and issues specific to managed code including: garbage collection (GC), managed code deployment and common managed code pitfalls. The…


Using GC Efficiently – Part 1

So the goal here is to explain the cost of things so you can make good decisions in your managed memory usage – it’s not to explain GC itself – it’s to explain how to use it. I assume most of you are more interested in using a garbage collector than implementing one yourself.  It…


Hello World

Yep, now I have a blog too. I work on the CLR Performance Team so naturally I will be writing about performance. 


GC Performance Counters

There are many .NET Memory Performance Counters and this is meant to give you some guidelines in interpreting the counter data and how to correlate them. This assumes you have a basic understanding of GC.   First thing you may want to look at is “% Time in GC”. This is the percentage of the…