maoni

.NET GC Architect, .NET Runtime Team

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

Post by this author

Women IC (Individual Contributor) engineer mentoring ring

During this fiscal year I ran a women IC mentoring ring in the Developer Division at Microsoft. It was part of the women's mentoring ring program in our division. I've always felt a little sad when I looked around and saw very few women ICs at very senior levels. Most women who advanced to those levels became managers. This was what ...

Put a DPAD on that GC!

Say what? Yes, there's a new feature called DPAD for regions - regions is what we are currently working on in .NET 6 to convert segments to. In this blog post I will first give some introduction to regions then talk about the DPAD feature. Note that it's unlikely we will officially support regions by the end of 6.0 as there's...

Internals of the POH

As folks are aware we added a new kind of heap in .NET 5 called the POH (Pinned Object Heap). Since this is a user facing feature (and there aren't that many of those in GC) I've been meaning to write about it but didn't get around till now. In this blog entry I'll explain the internals of it, partly because if you understand ...

The updated GetGCMemoryInfo API in .NET 5.0 and how it can help you

A bit of historyIn .NET 3.0 we introduced a GC.GetGCMemoryInfo API for library code to get memory load related things (this was used in ArrayPool for example) so it exposed things library folks wanted at the time. In 5.0 I got requests from folks to monitor more things about the GC. Instead of adding a bit of info each time someone asks, I ...

Work flow of diagnosing memory performance issues – Part 2

Work flow of diagnosing memory performance issues – Part 0 Work flow of diagnosing memory performance issues – Part 1 Work flow of diagnosing memory performance issues – Part 2 (this post) In this blog post I’ll talk a bit about how to spend time wisely and then continue with the analysis. Originally I was going to delve ...

Work flow of diagnosing memory performance issues – Part 1

Work flow of diagnosing memory performance issues – Part 0 Work flow of diagnosing memory performance issues – Part 1 (this post) Work flow of diagnosing memory performance issues – Part 2 In this blog post I’ll talk a bit about contributing to PerfView and then continue with the GCStats analysis. You can skip to the ...

Work flow of diagnosing memory performance issues – Part 0

Work flow of diagnosing memory performance issues – Part 0 (this post) Work flow of diagnosing memory performance issues – Part 1 Work flow of diagnosing memory performance issues – Part 2 I wanted to describe what I do to diagnose memory perf issues, or rather the common part of various work flows of doing such diagnostics...

Helping Customers Effectively

I have to put a disclaimer here since this is not the usual type of blog posts I write. I’m by no means a master at communication. This is just what I thought that seemed to work well. YMMV of course. But I’d be very happy if they help you in some way ‘cause many of us work with customers. And I welcome your thoughts and suggestions. I...
Comments are closed.0.NET

Balancing work on GC threads

In Server GC, each GC thread will work on its heap in parallel (that's a simplistic view and is not necessarily true for all phases but on the high level it's exact the idea of a parallel GC). So that alone means work is already split between GC threads. But because GC work for some stages can only proceed after all threads are done with their...

Provisional Mode

A coworker asked me what this “PMFullGC” trigger reason he’s seeing in GCStats means. I thought it’d be useful to share the info here.PM stands for Provisional Mode which means after a GC starts, it can change its mind about the kind of GC it’s doing. But what does that mean exactly? So normally when we start a GC, the first things ...