maoni

.NET GC Architect, .NET Runtime Team

Loves working on #dotnet #dotnetcore GC and other perf stuff.

Post by this author

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 some very long induced gen2 blocking GCs. And ...

Middle Ground between Server and Workstation GC

A long time ago I wrote about using Workstation GC on server applications when you have many instances of your server app running on the same machine. By default Server GC will treat the process as owning the machine so it uses all CPUs to do the GC work. More and more folks find themselves in a situation where they might have a few active ...

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 code under a debugger (that's how I really learned ...

GLAD Part 2

2 years ago I had a blog entry to introduce the GLAD (GC Latency Analysis and Diagnostics) library which provides much more insight into the GC heap performance than perf counters and takes care of interpreting raw GC ETW events so our users don't have to do that work themselves. Since then I have not heard too much usage from our customers :P...

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 level than otherwise). It ...

No GCs for your allocations?

Several people mentioned Java’s “no GC” GC proposal and asked if we can add such a thing. So I thought it deserves a blog post. Short answer – we already have such a feature and that’s called the NoGCRegion. The GC.TryStartNoGCRegion API allows you to tell us the amount of allocations you’d like to do and when you stay within it, ...

How to evaluate info you read on garbage collectors

Just a word before I actually start this blog entry – I apologize for approving some of the comments so late – it appears that our blogs’ policy has changed and it would make some comments as pending without obvious reasons to me. Also as one of the ways to support the community I was thinking I could have a specific time on a regular ...

GLAD is available

GC ETW series - GC ETW Events - Part 1 GC ETW Events - Part 2 GC ETW Events - Part 3 GC ETW Events - Part 4 Processing GC ETW Events Programmatically with the GLAD Library (this post) End of last year I mentioned we wanted to provide an API for you to really investigate GC/managed memory related performance called GLAD. ...

Working through things on other OSs

We just shipped CoreCLR 1.0. That was a significant milestone for us – now we officially run on non Windows OSs and that’s very exciting. Folks who told me that they really missed using C# or wanted to use C# but couldn’t because they were not using Windows can now do so. Yay! For GC it would seem like there shouldn’t’ve been much ...

Large Object Heap Uncovered (an old MSDN article)

I wrote this article in 2008 and the MSDN website no longer has it so I am making it available here. Please note that it has been quite a while and some things related to LOH have changed quite a bit. See the GC ETW blog entries I wrote for the current tooling options. Also note that obviously some of the links mentioned in this article may ...