Allocating on the stack or the heap?

A recent discussion prompted me to write this blog entry. The question there was “when should I allocate something on the stack vs on the heap?”. I searched around and there are plenty of articles that talk about *what* gets allocated on the stack vs on the heap, but not how you should decide what…


GC ETW Events – 4

So you thought it was over, eh? But wait, there is more! My vacation is not over yet! 😀 In the last blog entry I explained the Suspend MSec and the Pause MSec columns in GCStats and how they are calculated. In this entry I’d like to talk about a few other columns. GenX MB,…


GC ETW Events – 3

In the last blog entry we looked at a particular GC trigger reason – InducedNotForced GCs. There are 2 other triggered reasons for induced GCs are: InducedLowMemory – GC subscribes to the low memory notification from the OS and when the OS notifies us that “the memory is low on the machine” a GC is…


GC ETW events – 2

Before we continue from where we left off in the last blog entry I wanted to give a performance tip on managed memory analysis. As some of you who have already tried out Perfview you probably noticed it has a Heap Snapshot feature (in the PerfView UI, if you click on Memory\Take Heap Snapshot) which…


GC ETW events – 1

A lot of people have mentioned to me that I have not posted anything for a long time. I do realize it and do appreciate being asked to write more. Well, it’s end of year and I am starting vacation so I thought I’d write something light that perhaps makes good reading around Christmas time…


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…


What’s new in GC in CLR 4.5 from our team blog

This is now live from CLR’s team blog. This paints a more complete picture than what I talked about in my “What’s new in 4.5 GC” Channel 9 interview which mostly focused on Server Background GC. Enjoy!


So, what’s new in the CLR 4.5 GC?

Last time I posted a “So, what’s new” entry was when we release 4.0 ~3 years ago (can’t believe it’s already been that long..). Now I get to talk about what’s new in the 4.5 GC. Actually I just talked about this with Channel 9 and here’s the link to the video:  Enjoy!


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…


Debugging with the Right Tools

Wow, it’s been almost a year since I last blogged J We just shipped CLR V4.0. Yay!   An internal email thread prompted me to write this blog entry – one very powerful tool I wanted to point out when you need to debug/investigate issues is your debugger (if your debugger is also windbg/cdb that…