Posts by this author

Oct 24, 2021
4
0

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 prompte...

.NET
May 10, 2021
8
1

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 a lo...

.NET
Feb 27, 2021
13
4

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 them i...

.NET
Nov 27, 2020
4
0

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

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 really thought about the kinds of things that would help with monitoring and diagnostics and expanded the info provided by this API significantly. It also has a new overload, docume...

.NET CorePerformance.NET Internals
Apr 27, 2020
4
1

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 deeper into the...

.NET
Apr 12, 2020
1
0

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 analysis part dir...

.NET
Apr 5, 2020
9
0

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. Diagnosin...

.NET
Mar 30, 2020
0
0

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 have talke...

.NET
Mar 28, 2020
1
0

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 last...

.NET
Feb 27, 2020
3
0

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 we do are-And af...

.NET