Sign in
Maoni's WebLog
CLR Garbage Collector
Translate This Page
Translate this page
Powered by
Microsoft® Translator
Tags
Debugging
General
Performance
Browse by Tags
MSDN Blogs
>
Maoni's WebLog
>
All Tags
>
performance
Tagged Content List
Blog Post:
So, what’s new in the CLR 4.0 GC?
Maoni Stephens
PDC 2008 happened not long ago so I get to write another “what’s new in GC” blog entry. For quite a while now I’ve been working on a new concurrent GC that replaces the existing one. And this new concurrent GC is called “background GC”. First of all let me apologize for having not written anything...
on
19 Nov 2008
Blog Post:
64-bit vs 32-bit
Maoni Stephens
As 64-bit machines become more common, the problems we need to solve also evolve. In this post I’d like to talk about what it means for the GC and the applications’ memory usage when we move from 32-bit to 64-bit. One big limitation of 32-bit is the virtual memory address space - as a user mode...
on
15 May 2007
Blog Post:
Difference Between Perf Data Reported by Different Tools – 4
Maoni Stephens
.NET CLR Memory\% Time in GC counter and !runaway on thread(s) doing GC . The 2 common ways people use to look at the time spent in GC are the % Time in GC performance counter under .NET CLR Memory, and the CPU time displayed by the !runaway debugger command in cdb/windbg . What do they mean exactly...
on
12 Jan 2007
Blog Post:
Difference Between Perf Data Reported by Different Tools – 3
Maoni Stephens
Both the !SOS.gchandles command (added in CLR 2.0) and the .NET CLR Memory\# GC Handles counter show you the number of GC handles you have in your process. The # GC Handles counter is one of the rare counters in the .NET CLR Memory category that doesn’t get updated at the end of each GC. Rather we...
on
20 Dec 2006
Blog Post:
Difference Between Perf Data Reported by Different Tools - 1
Maoni Stephens
So, there are many perf tools and some of them report either the same or the same type of data. I want to talk about various differences between the ones related to managed heap investigation. This is not supposed to cover everything..just the ones I think people use frequently. Managed Heap Size...
on
12 Dec 2006
Blog Post:
My application seems to hang. What do I do? – Part 2
Maoni Stephens
Last time I talked about the hang scenario where your process is taking 0 CPU and the CPU is taking by other process(es) on the same machine. The next scenario is your process is taking 0 CPU and the CPU is barely used by other processes. As one of the readers correctly pointed out, this...
on
14 Nov 2006
Blog Post:
New MSDN Article - Investigating Memory Issues
Maoni Stephens
We have a new MSDN article out in the November issue that talks about investigating managed memory issues. http://msdn.microsoft.com/msdnmag/issues/06/11/CLRInsideOut/default.aspx?loc=en Take a look and let me know what you think. Oh, and it's also in 6 other languages ( German , Spanish , French...
on
23 Oct 2006
Blog Post:
My application seems to hang. What do I do? – Part 1
Maoni Stephens
Defining “hang” is a good place to start. When people say “hang” they could mean all sorts of things. When I say “hang” I mean the process is not making progress – the threads in the process are either blocked (eg. deadlocked, or not scheduled because of threads from other processes) or executing...
on
28 Sep 2006
Blog Post:
Understand the problem before you try to find a solution
Maoni Stephens
So far I’ve never written a blog entry that gives out philosophical advices on doing performance work. But lately I thought perhaps it’s time to write such an entry because I’ve seen enough people who looked really hard at some performance counters (often not correct ones) or some other data and asked...
on
1 Sep 2006
Blog Post:
When memory is running low…
Maoni Stephens
When I say memory I mean physical memory. Let’s assume that you have enough virtual memory space. When the physical memory gets low you may start getting OOMs or start paging. You can experiment and see how you can avoid getting into the low memory situation but sometimes it’s hard to predict and...
on
6 Jun 2006
Blog Post:
Large Object Heap
Maoni Stephens
LOH (Large Object Heap) contains objects that are 85,000 bytes or bigger (there’s also some objects that are less than 85,000 bytes that are allocated on the LOH by the runtime itself but usually they are very small and we’ll ignore them for this discussion). The way LOH is implemented changed...
on
19 Apr 2006
Blog Post:
Workstation GC for server applications?
Maoni Stephens
In Using GC Efficiently – Part 2 I talked about different flavors of GC that exist in the CLR and how you choose which flavor is good for your applications, and I said that the Server GC flavor is designed for server applications. As with any performance tuning there are always exceptions – there’s no...
on
1 Mar 2006
Blog Post:
So, what’s new in the CLR 2.0 GC?
Maoni Stephens
Certainly that’s one of the most frequently asked questions I get (at the PDC too!). So since PDC already happened I can tell the rest of you about the new stuff happened in GC in CLR 2.0. The slides can be downloaded here . And I will be referring to some of the slides. I must apologize for your having...
on
4 Oct 2005
Blog Post:
GC talk at the 2005 PDC
Maoni Stephens
I will be giving a GC talk at the PDC this September. This talk is to give you a close up view of the CLR GC so I hope to see all you hard core .NET developers there! I will talk about some internal details of generations, allocations, different flavors of GC and fragmentation (what we have done in...
on
27 Jul 2005
Blog Post:
Using GC Efficiently – Part 4
Maoni Stephens
In this article I’ll talk about things you want to look for when you look at the managed heap in your applications to determine if you have a healthy heap. I’ll touch on some topics related to large heaps and the implications you want to be aware of when you have an application that maintains or has...
on
6 May 2005
Blog Post:
Using GC Efficiently – Part 3
Maoni Stephens
In this article I’ll talk about pinning and weak references – stuff related to GC handles. (I was planning on talking about finalization in this part of the “Using GC Efficiently” series but since I already covered it in pretty much detail in one of my previous blog entries I won’t repeat it here. Feel...
on
19 Dec 2004
Blog Post:
Tools that help diagnose managed memory related issues
Maoni Stephens
I was writing an internal wiki page on performance and thought this info is useful to many external readers as well so here it goes. vadump is a good start. It’s an mstools tool – meaning you can find it on your NT CD under bin\mstools. You can take a snapshot of the process and see if the GC heap is...
on
8 Nov 2004
Blog Post:
Clearing up some confusion over finalization and other areas in GC
Maoni Stephens
In the WinDev conference that I just went to, there seems to be some confusion over finalization (such as why it even exists and etc) and other areas. I hope the following will clear up that confusion. If not, let me know. Finalization 1) Why we have finalization Finalization is necessary because you...
on
4 Nov 2004
Blog Post:
Using GC Efficiently – Part 2
Maoni Stephens
In this article I’ll talk about different flavors of GC, the design goals behind each of them and how they work differently from each other so you can make a good decision of which flavor of GC you should choose for your applications. Existing GC flavors in the runtime today We have the following flavors...
on
25 Sep 2004
Blog Post:
WinDev in Boston
Maoni Stephens
I am going to WinDev this year to give 2 performance talks. Check out: http://butrain.bu.edu/windev/track2.asp (it's from Oct 25 to 29) Below is the description: C5 - CLR Performance Write faster managed code! Learn about performance engineering, tools and issues specific to managed code including: garbage...
on
6 Sep 2004
Blog Post:
Using GC Efficiently – Part 1
Maoni Stephens
So the goal here is to explain the cost of things so you can make good decisions in your managed memory usage – it’s not to explain GC itself - it’s to explain how to use it. I assume most of you are more interested in using a garbage collector than implementing one yourself. It assumes...
on
15 Jun 2004
Blog Post:
GC Performance Counters
Maoni Stephens
There are many .NET Memory Performance Counters and this is meant to give you some guidelines in interpreting the counter data and how to correlate them. This assumes you have a basic understanding of GC. First thing you may want to look at is “% Time in GC” . This is the percentage of the time spent...
on
3 Jun 2004
Page 1 of 1 (22 items)