.NET Blog

Free. Cross-platform. Open source. A developer platform for building all your apps.

A portable way to get GC events in process and no admin privilege with 10 lines of code (and ability to dynamically enable/disable events)

I’ve been talking about doing managed heap performance analysis with ETW events for ages because ETW is just such a powerful tool. It has a well defined format so many components, from kernel modes to user mode ones, all emit ETW events which means you can have tools that just know how to parse the event format and correlate them. At ...
Comments are closed.0 0
.NET

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 they used a 64-bit number for the processor mask. And when ...

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 some of you guys have to suffer through this thus ...

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 ...
Comments are closed.0 0
.NET

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...
Comments are closed.0 0
.NET

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 ...
Comments are closed.0 0
.NET

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, ...
Comments are closed.0 0
.NET