Finalization Uncovered

I’ve talked about finalization before but based on seeing questions related to it it appears that it deserves some clarification.   First of all, finalization is a mechanism we provide in the CLR wheras Dispose is a programming pattern. See Clearing up some confusion over finalization and other areas in GC for an explanation why…


Get This Fantastic Book about .NET Memory Management!

If you are reading my blog chances are you care about .NET memory performance, most likely a lot. Our GC source is on github for anyone to look at. If you are curious enough, you could absolutely learn a lot about our GC by cloning our coreclr repo, building it, and stepping through the GC…


Running with Server GC in a Small Container Scenario Part 0

This week I was able to get some time to work on the container stuff with low memory limits. As many of you have expressed your dissatisfaction on how Server GC behaves with low memory limit specified on containers on github, I have to apologize that I am just doing this now. Really sorry that…


GC talk at the 2005 PDC

I will be giving a GC talk at the PDC this September. This talk is to give you a close up view of the CLR GC so I hope to see all you hard core .NET developers there! I will talk about some internal details of generations, allocations, different flavors of GC and fragmentation (what…


You Should Never See This Callstack in Production

A customer who just experienced some server outage asked us for help as they thought it was due to some very long GC pauses. I thought this diagnostics exercise might be useful for other folks as well so I am sharing it with you. We had them collect a GCCollectOnly trace which showed there were…


Running with Server GC in a Small Container Scenario Part 1 – Hard Limit for the GC Heap

I’ve checked in 2 configs related to specifying a hard limit for the GC heap memory usage so I wanted to describe them and how they are intended to be used. Feedback would be greatly appreciated. In order to talk about the new configs it’s important to understand what consists of the memory usage in…


Making CPU configuration better for GC on machines with > 64 CPUs

If you are running Windows on a machine with > 64 CPUs, you’ll need to use this feature called the CPU groups for your process to be able to use more than 64 CPUs. At some point in the far distant past, people thought having more than 64 processors on a machine was inconceivable so…


Cloud Gal interview

Microsoft recently started a new series called “Cloud Gal” that promotes female software developers. They interviewed me last week and the episode just became live on Channel9. This was supposed to be pretty lighthearted so I stayed very high level when I talked about GC (turned out it was harder to talk on such high…


The Defrag Tools Channel9 series on managed memory diagnostics

Recently I did a few videos for the popular “Defrag Tools” series on Channel9. They are just talking about pretty basic things about doing managed memory investigations so I’d imagine for most of you it’s something you already know. However, you can feel free to suggest things you’d like to see in the comments of…


Thank you all for your comments!

I will write about the things you asked in my last blog entry’s comments in the next few blog entries.