<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx</link><description>So the goal here is to explain the cost of things so you can make good decisions in your managed memory usage &amp;#8211; it&amp;#8217;s not to explain GC itself - it&amp;#8217;s to explain how to use it. I assume most of you are more interested in using a garbage</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#156642</link><pubDate>Wed, 16 Jun 2004 00:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:156642</guid><dc:creator>Wayne</dc:creator><description>Good stuff.  Keep it coming, please.</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#156751</link><pubDate>Wed, 16 Jun 2004 03:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:156751</guid><dc:creator>SubZero</dc:creator><description>Wow - I used to get paid (approx. $500 per article) for writing things like this.</description></item><item><title>Using GC Efficiently</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#156847</link><pubDate>Wed, 16 Jun 2004 10:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:156847</guid><dc:creator>Cook Computing</dc:creator><description>Microsoft developer Maoni has some more interesting GC-related information, this time on Using GC Efficiently . While you don't want to get bogged down in micro-optimization too early, it important to bear stuff like this in mind when designing high...</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#157599</link><pubDate>Wed, 16 Jun 2004 22:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:157599</guid><dc:creator>Vishal Joshi</dc:creator><description>A very good article... I recommend you to send it to MSDN Knowlege Base... </description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#161163</link><pubDate>Mon, 21 Jun 2004 09:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:161163</guid><dc:creator>avnrao</dc:creator><description>cool stuff.. please continue this blog. &lt;br&gt;pls answer these few questions..&lt;br&gt;&lt;br&gt;1. how do i find out how many objects exist in Gen 0,1 and 2 separately?&lt;br&gt;2. In collection section of your blog..you mentioned that GC fires when any of the three conditions meet. what happens to the objects if none of the conditions meet.&lt;br&gt;say.. I call a method, create some object object X and finish the method. say my Gen 0 doesnt reach the threshold (is there any default??), when will GC be collected? until GC starts, will the object be alive even if my application is stopped?&lt;br&gt;&lt;br&gt;pls do answer.&lt;br&gt;&lt;br&gt;thank you,&lt;br&gt;Av.</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#161788</link><pubDate>Mon, 21 Jun 2004 22:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:161788</guid><dc:creator>Maoni</dc:creator><description>Hi Avnrao, to answer your questions:&lt;br&gt;&lt;br&gt;1) You can get the generation sizes from perfmon counters. Please see &lt;a target="_new" href="http://blogs.msdn.com/maoni/archive/2004/06/03/148029.aspx"&gt;http://blogs.msdn.com/maoni/archive/2004/06/03/148029.aspx&lt;/a&gt;. We don't expose the number of objects. It's more useful to know how much space they occupy rather than how many of them there are. Use CLRProfiler if you need to know what the objecs are on the heap.&lt;br&gt;&lt;br&gt;2) If no GC happens, your object will just stay alive in the heap. I am not sure what you mean by &amp;quot;my application is stopped&amp;quot; - does that mean your applicatoin's process is idle or terminated or something else?</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#164378</link><pubDate>Thu, 24 Jun 2004 05:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:164378</guid><dc:creator>Luke S.</dc:creator><description>That's an interesting read thanks for posting.&lt;br&gt;Though now I can understand more why .NET GC is slow and inferior to native allocations:&lt;br&gt;1. you say you are allocating (reserving) 16MB per segment. What does that do to my PTEs? My simple calc says that you would need 4000 PTEs per your GC heap, thus 12000 for all three of them, 48kb of non paged memory? How does that compare to native HelloWorld where all my code might fit in few kbs?&lt;br&gt;2. strategy for allocation: if you do not collect in G0 until 16MB isn't filled, what does that do to my L2 cache? I don't know about you guys at MS, but my best CPU has 2MB. Does that mean that instead of being local and fitting nice in L2 I am bouncing other data out? I guess that doesn't help perf there?&lt;br&gt;3. what objects go to GC? If I have for (…){String s1;…} does s1 it goes to GC or you keep it on stack? From Rotor I understand it will be put on GC and though compiler has perfect control and info over lifetime of S1? Why not to put in on stack, or at least to move your GC pointer back and forth? &lt;br&gt;&lt;br&gt;I wonder is there any a theoretical case where manged code with GC would be anywhere close to well crafted native allocation? Doubt it...</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#165015</link><pubDate>Thu, 24 Jun 2004 18:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:165015</guid><dc:creator>Maoni</dc:creator><description>Luke, you got this completely wrong. Let me explain:&lt;br&gt;&lt;br&gt;1) PTEs are not allocated for reserved memory. And we don't allocate a segment for each generation. &lt;br&gt;2) See 1), we don't allocate a whole segment for Gen0. Gen0 is a lot smaller than the whole segment. &lt;br&gt;3) In your code example, it is clear that the compiler could figure out that the scope and lifetime are the same so the object could be safely be allocated on the stack without any checks. Otherwise, in a normal case, where the object is passed to a method, you couldn’t allocate it on the stack even with checks. So it could be done with a smart compiler and some changes in the EE but it isn't clear how much it buys you in practice because when the lifetime isn't clear, the compiler has to heap allocate.&lt;br&gt;&lt;br&gt;Finally, do you have evidence that GC is slower than native allocations? Because that's the opposite of our experience.&lt;br&gt;</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#178047</link><pubDate>Fri, 09 Jul 2004 06:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:178047</guid><dc:creator>Akshay Kumar</dc:creator><description>Hi Maoni,&lt;br&gt;This is excellent stuff . But I have to say this .&lt;br&gt;I do not fine relation between this theory with ASP.NET technology and Win forms technology.&lt;br&gt;e.g What impact does session management has when done is a certain fashion on GC. b'cos its MS developer who wrote session management or cache management engine.&lt;br&gt;So how are objects in session disposed and GC'ed.&lt;br&gt;There has to be a relationship established for overall performance increase.&lt;br&gt;&lt;br&gt; this comment is not for you but its for people writing scalability guides and MS product documentation( as I have no access to them) may be you can send my gripe to them.&lt;br&gt;Once again good post.&lt;br&gt;Regards,&lt;br&gt;Akshay</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#178324</link><pubDate>Fri, 09 Jul 2004 13:39:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:178324</guid><dc:creator>Maoni</dc:creator><description>Hi Akshay, thanks for your feedback. I've asked our ASP.NET and WinForms perf people whether they have any documents of such. I'll post the responses once I have them.</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#183718</link><pubDate>Thu, 15 Jul 2004 05:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:183718</guid><dc:creator>Maarten</dc:creator><description>Naomi, Could you explain what is in the 8 byte sync block you mention? What is is used for? &lt;br&gt;&lt;br&gt;Thank you</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#183729</link><pubDate>Thu, 15 Jul 2004 05:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:183729</guid><dc:creator>Maoni</dc:creator><description>Maarten, take a look at Jeff Richter's MSDN article &lt;a target="_new" href="http://msdn.microsoft.com/msdnmag/issues/03/01/NET/"&gt;http://msdn.microsoft.com/msdnmag/issues/03/01/NET/&lt;/a&gt;&lt;br&gt;It explains a sync block use. It's also used for various other things in the runtime but what Jeff mentioned in his article is one of the most important usages of sync blocks. Basically think of it as some data associated with the object and allocated on demand.</description></item><item><title>Backlog</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#222176</link><pubDate>Sun, 29 Aug 2004 03:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:222176</guid><dc:creator>C#deSamurai</dc:creator><description /></item><item><title>Backlog</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#222182</link><pubDate>Sun, 29 Aug 2004 03:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:222182</guid><dc:creator>C#deSamurai</dc:creator><description /></item><item><title>A Few Good GC Links</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#229554</link><pubDate>Tue, 14 Sep 2004 21:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:229554</guid><dc:creator>Chris Lyon's WebLog</dc:creator><description /></item><item><title>Good GC reading</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#235502</link><pubDate>Wed, 29 Sep 2004 03:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:235502</guid><dc:creator>markorangel.com</dc:creator><description /></item><item><title>Good blog entries on .Net GC</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#249129</link><pubDate>Thu, 28 Oct 2004 20:16:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:249129</guid><dc:creator>Josh Williams</dc:creator><description /></item><item><title>The joy's of garbage collection</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#267141</link><pubDate>Sat, 20 Nov 2004 07:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:267141</guid><dc:creator>Josh Carlisle - .Net Brain Freeze</dc:creator><description /></item><item><title>The joy's of garbage collection</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#267143</link><pubDate>Sat, 20 Nov 2004 07:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:267143</guid><dc:creator>Josh Carlisle - .Net Brain Freeze</dc:creator><description /></item><item><title>.NET Garbage Collection</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#273767</link><pubDate>Thu, 02 Dec 2004 19:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:273767</guid><dc:creator>Little Tidbits of Random Knowledge</dc:creator><description /></item><item><title>New and Notable 68</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#328488</link><pubDate>Tue, 21 Dec 2004 14:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:328488</guid><dc:creator>Sam Gentile's Blog</dc:creator><description /></item><item><title>New and Notable 68</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#329111</link><pubDate>Tue, 21 Dec 2004 22:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:329111</guid><dc:creator>Sam Gentile's Blog</dc:creator><description /></item><item><title>Even more on IDisposable</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#397056</link><pubDate>Wed, 16 Mar 2005 23:08:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:397056</guid><dc:creator>TheChaseMan's Frenetic SoapBox</dc:creator><description /></item><item><title>Garbage Collection Articles: an updated list</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#443590</link><pubDate>Wed, 27 Jul 2005 00:52:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:443590</guid><dc:creator>Steve Hebert's Development Blog</dc:creator><description>I previously blogged about a set must-read garbage collection articles&amp;amp;amp;nbsp;and issues around directly...</description></item><item><title>Using GC Efficiently - Maoni Stephens</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#455686</link><pubDate>Wed, 24 Aug 2005 20:52:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:455686</guid><dc:creator>Gaurav's Database...</dc:creator><description>Using GC Efficiently – Part 1 &lt;br&gt;Using GC Efficiently – Part 2 &lt;br&gt;Using GC Efficiently – Part 3 &lt;br&gt;Using...</description></item><item><title>Workstation GC for server applications?</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#541097</link><pubDate>Wed, 01 Mar 2006 09:44:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:541097</guid><dc:creator>Maoni's WebLog</dc:creator><description>In Using GC Efficiently – Part 2 I talked about different flavors of GC that exist in the CLR and how...</description></item><item><title>Garbage Collection - Learns .NET</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#587115</link><pubDate>Sun, 30 Apr 2006 17:28:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:587115</guid><dc:creator>Garbage Collection - Learns .NET</dc:creator><description>PingBack from &lt;a rel="nofollow" target="_new" href="http://kenny-tran.com/blog/net-framework/garbage-collection/"&gt;http://kenny-tran.com/blog/net-framework/garbage-collection/&lt;/a&gt;</description></item><item><title>Using GC Efficiently</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#595594</link><pubDate>Thu, 11 May 2006 22:40:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:595594</guid><dc:creator>Eric Gunnerson's C# Compendium</dc:creator><description>Spending lots of time on C++ means I haven't been paying as much attention to managed code as I did in...</description></item><item><title>An excellent series of articles by Maoni about the Garbage Collection</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#597381</link><pubDate>Sun, 14 May 2006 15:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:597381</guid><dc:creator>.Net Adventures </dc:creator><description>&lt;br&gt;Using GC &lt;br&gt;Efficiently Part 1Maoni explains the cost of things so you can make good &lt;br&gt;decisions in...</description></item><item><title>Cow Powered  &amp;raquo; Blog Archive  
	 &amp;raquo; Garbage collection</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#597844</link><pubDate>Mon, 15 May 2006 12:03:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:597844</guid><dc:creator>Cow Powered  » Blog Archive  
	 » Garbage collection</dc:creator><description>PingBack from &lt;a rel="nofollow" target="_new" href="http://cowpowered.com/blog/?p=13"&gt;http://cowpowered.com/blog/?p=13&lt;/a&gt;</description></item><item><title>  An excellent series of articles by Maoni about the Garbage Collection  at  TR</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#709528</link><pubDate>Sun, 20 Aug 2006 21:15:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:709528</guid><dc:creator>  An excellent series of articles by Maoni about the Garbage Collection  at  TR</dc:creator><description>PingBack from &lt;a rel="nofollow" target="_new" href="http://www.target-russia.org/computers-internet/net/an-excellent-series-of-articles-by-maoni-about-the-garbage-collection/"&gt;http://www.target-russia.org/computers-internet/net/an-excellent-series-of-articles-by-maoni-about-the-garbage-collection/&lt;/a&gt;</description></item><item><title>Workstation GC for server applications?</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1041880</link><pubDate>Thu, 09 Nov 2006 04:07:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1041880</guid><dc:creator>Maoni's WebLog</dc:creator><description>&lt;p&gt;In Using GC Efficiently – Part 2 I talked about different flavors of GC that exist in the CLR and how&lt;/p&gt;
</description></item><item><title>So, what’s new in the CLR 2.0 GC?</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1041882</link><pubDate>Thu, 09 Nov 2006 04:07:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1041882</guid><dc:creator>Maoni's WebLog</dc:creator><description>&lt;p&gt;Certainly that’s one of the most frequently asked questions I get (at the PDC too!). So since PDC already&lt;/p&gt;</description></item><item><title>Doubt in JIT and Method Call</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1256801</link><pubDate>Mon, 11 Dec 2006 10:19:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1256801</guid><dc:creator>Ramachandran</dc:creator><description>&lt;p&gt;Hi Maoni,&lt;/p&gt;
&lt;p&gt;I read about method calls and JIT in Jeff's CLR via C# book. There i read the following concepts.&lt;/p&gt;
&lt;p&gt;When a method is about to call, iT finds all the types references/used in the method and creates type objects for those types and loads the MSIL of the methods/types and associate them with the type object.&lt;/p&gt;
&lt;p&gt;When a method is called, it loads the MSIL JITs it and Updates the type object to update the JIT compiled code instead of MSIL code.&lt;/p&gt;
&lt;p&gt;When a non virtual method is called it **finds the type object and finds the address** of the JIT compiled code or MSIL code and do the above things.&lt;/p&gt;
&lt;p&gt;How does it finds the exact address of the type object?&lt;/p&gt;
&lt;p&gt;How this happens if it is a value type?.&lt;/p&gt;
&lt;p&gt;regards&lt;/p&gt;
&lt;p&gt;RAM&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1328580</link><pubDate>Wed, 20 Dec 2006 09:47:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1328580</guid><dc:creator>Raj</dc:creator><description>&lt;p&gt;Hi Maoni,&lt;/p&gt;
&lt;p&gt;nice Article on GC.&lt;/p&gt;
&lt;p&gt;I have some doubts in it.&lt;/p&gt;
&lt;p&gt;you said when EE stars it allocate one segment for small objects and one segement for LOH. in which generations will it creates?&lt;/p&gt;
&lt;p&gt;2)some time back i read one article in which he stated that when an application started it will create 2 threads one for main and one for GC in this situation how the memory reclaims for the following scenario.&lt;/p&gt;
&lt;p&gt;I created a reference type object in a method so that the memory is created in Gen0 and the Gen0 is not full suddenly my application terminated. what about the memory allocated?&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1328690</link><pubDate>Wed, 20 Dec 2006 10:51:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1328690</guid><dc:creator>maoni</dc:creator><description>&lt;p&gt;Raj, &lt;/p&gt;
&lt;p&gt;Re 1) LOH is always treated as gen2 objects - meaning they are only collected with gen2 colletions. For SOH (Small Object Heap) the initial objects are gen0 then the survivors get promoted to gen1; then you start allocating in gen0 again. The segment often looks like this:&lt;/p&gt;
&lt;p&gt;from lowest address to highest address&lt;/p&gt;
&lt;p&gt;gen2 | gen1 | gen0 | end space of this segment&lt;/p&gt;
&lt;p&gt;Take a look at my slide deck from the last PDC at&lt;/p&gt;
&lt;p&gt;&lt;a rel="nofollow" target="_new" href="http://216.55.183.13/pdc2005/slides/FUN421_Stephens.ppt"&gt;http://216.55.183.13/pdc2005/slides/FUN421_Stephens.ppt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(note that last time I tried I couldn't open this in IE but I could save it)&lt;/p&gt;
&lt;p&gt;re 2) regardless of what GC does, all private memory associated with the process will be freed by the OS.&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1464186</link><pubDate>Sun, 14 Jan 2007 07:52:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1464186</guid><dc:creator>Bill</dc:creator><description>&lt;p&gt;Maoni,&lt;/p&gt;
&lt;p&gt;Can you recommend a good resource on how to troubleshoot an ASP .Net application that has too many gen2 collections. &amp;nbsp;I am having a hard time determining why the gen 2 collections are happening. &amp;nbsp;Our research indicates we have too many segements being allocated or the sytem is in a low memory situation (possibly both).&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Bill&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1468646</link><pubDate>Mon, 15 Jan 2007 10:36:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1468646</guid><dc:creator>maoni</dc:creator><description>&lt;p&gt;Take a look: &lt;a rel="nofollow" target="_new" href="http://msdn.microsoft.com/msdnmag/issues/06/11/CLRInsideOut/default.aspx?loc=en"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/CLRInsideOut/default.aspx?loc=en&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1471911</link><pubDate>Mon, 15 Jan 2007 19:22:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1471911</guid><dc:creator>Bill</dc:creator><description>&lt;p&gt;Thanks for the troubleshooting article :)&lt;/p&gt;
&lt;p&gt;Can you explain in more detail the situation where garbage collection is triggered by:&lt;/p&gt;
&lt;p&gt;System is in low memory&lt;/p&gt;
&lt;p&gt;Do you mean the entire machine is low on memory or just the .net process? &amp;nbsp;What are the thresholds that must be crossed for this situation to happen??&lt;/p&gt;
&lt;p&gt;Bill&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1473038</link><pubDate>Tue, 16 Jan 2007 00:45:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1473038</guid><dc:creator>maoni</dc:creator><description>&lt;p&gt;Bill, we measure the machine memory load, not per process. On different OSs the values are different but you can consider a GC is likely to be triggered if the machine mem load is in the high 80's. However we don't do full GCs all the time when the memory load is high - we tend to do a full GC only every few GCs.&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1488891</link><pubDate>Thu, 18 Jan 2007 18:20:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1488891</guid><dc:creator>Bill</dc:creator><description>&lt;p&gt;Maoni,&lt;/p&gt;
&lt;p&gt;You mentioned &amp;quot;if you allocate a large object that you expect to not move, you should make sure to pin it&amp;quot;.&lt;/p&gt;
&lt;p&gt;In several of my company's applications developers have loaded a DataSet with static data during the ASP .Net application start. &amp;nbsp;In your opinion we can help the GC by pinning the DataSet so the GC doesn't have to &amp;quot;look&amp;quot; at the static data during collections?&lt;/p&gt;
&lt;p&gt;Would this code look like this??&lt;/p&gt;
&lt;p&gt;DataSet ds = new DataSet();&lt;/p&gt;
&lt;p&gt;... code to load ds ...&lt;/p&gt;
&lt;p&gt;GCHandle pinHandle = GCHandle.Alloc(ds,GCHandleType.Pinned);&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Bill&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1494859</link><pubDate>Sat, 20 Jan 2007 01:07:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1494859</guid><dc:creator>maoni</dc:creator><description>&lt;p&gt;When I said &amp;quot;if you allocate a large object that you expect to not move, you should make sure to pin it&amp;quot;, my intention was to tell you that not compacting LOH is an implementation detail that you should not rely on. So to make sure your large object don't move you should pin it.&lt;/p&gt;
&lt;p&gt;You shouldn't pin those objects. Since they are allocated when the process starts up, they will likely be moved into a gen2 segment and stay there anyway. Pinning them would only introduce possible fragmentation and won't gain you anything (and makes GC's job harder).&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1685858</link><pubDate>Fri, 16 Feb 2007 00:40:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1685858</guid><dc:creator>pmackay</dc:creator><description>&lt;p&gt;Maoni,&lt;/p&gt;
&lt;p&gt;I checked your FUN421_Stephens.ppt, and in the slide 9, after 500 GC, what could happen with a segment if after the 501th collect, it frees many objects that lived in gen 2?&lt;/p&gt;
&lt;p&gt;&amp;#191;Is that segment going to be like this?&lt;/p&gt;
&lt;p&gt;222222222222222222222222222222222222222FFFFFFFFFF&lt;/p&gt;
&lt;p&gt;22FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF&lt;/p&gt;
&lt;p&gt;222222221111111110000000000FFFFFFFFFFFFFFFFFFFFFF&lt;/p&gt;
&lt;p&gt;or like this, due to a compact&lt;/p&gt;
&lt;p&gt;222222222222222222222222222222222222222FFFFFFFFFF&lt;/p&gt;
&lt;p&gt;22222222221111111110000000000FFFFFFFFFFFFFFFFFFFF&lt;/p&gt;
&lt;p&gt;Also, Is possible to have something like this?&lt;/p&gt;
&lt;p&gt;222222222222222222222222222222222222222222222FFFF&lt;/p&gt;
&lt;p&gt;2222222222222222222222222222222222111111111111111&lt;/p&gt;
&lt;p&gt;111111111111100000000000FFFFFFFFFFFFFFFFFFFFFFFFF&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;patrick.&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1749717</link><pubDate>Sat, 24 Feb 2007 02:04:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1749717</guid><dc:creator>maoni</dc:creator><description>&lt;p&gt;The 1st and the 2nd case you described are possible. The 3rd one is not 'cause there can't be more than one ephemeral segment for each heap.&lt;/p&gt;
</description></item><item><title>New In Orcas Part 3: GC Latency Modes</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#1867063</link><pubDate>Mon, 12 Mar 2007 22:16:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1867063</guid><dc:creator>Chris Lyon's WebLog</dc:creator><description>&lt;p&gt;As you may know, there are different GC modes to choose from depending on the type of application you’re&lt;/p&gt;
</description></item><item><title>高效使用GC - 第一部分</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#3417582</link><pubDate>Wed, 20 Jun 2007 09:08:09 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3417582</guid><dc:creator>shalen520</dc:creator><description>&lt;p&gt;本文的目的是讨论GC操作的成本，以便在使用托管内存时能作出正确决策&lt;/p&gt;
</description></item><item><title>Top 20 .NET Garbage Collection (GC) Articles</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#3452758</link><pubDate>Fri, 22 Jun 2007 07:40:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3452758</guid><dc:creator>roy ashbrook</dc:creator><description>&lt;p&gt;Ah. Garbage Collection... how I love and hate thee. =P I think one sad thing about programming in .net&lt;/p&gt;
</description></item><item><title>Top 20 .NET Garbage Collection (GC) Articles</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#3452788</link><pubDate>Fri, 22 Jun 2007 07:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:3452788</guid><dc:creator>roy ashbrook</dc:creator><description>&lt;p&gt;Ah. Garbage Collection... how I love and hate thee. =P I think one sad thing about programming in .net&lt;/p&gt;
</description></item><item><title>Boxing  &amp;raquo; Blog Archive   &amp;raquo; Josh Williams</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#6986129</link><pubDate>Sat, 05 Jan 2008 06:35:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6986129</guid><dc:creator>Boxing  » Blog Archive   » Josh Williams</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://boxing.247blogging.info/?p=242"&gt;http://boxing.247blogging.info/?p=242&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Famous Quotes &amp;raquo; Josh Williams : Thursday October 28 2004 - Posts</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#6990177</link><pubDate>Sat, 05 Jan 2008 13:49:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6990177</guid><dc:creator>Famous Quotes » Josh Williams : Thursday October 28 2004 - Posts</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://famousquotes.247blogging.info/?p=1155"&gt;http://famousquotes.247blogging.info/?p=1155&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>College Fun Facts &amp;raquo; Josh Williams</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#8345102</link><pubDate>Mon, 31 Mar 2008 08:40:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8345102</guid><dc:creator>College Fun Facts » Josh Williams</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://collegefunfactsblog.info/josh-williams/"&gt;http://collegefunfactsblog.info/josh-williams/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#8348383</link><pubDate>Tue, 01 Apr 2008 19:28:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8348383</guid><dc:creator>Andrew Z</dc:creator><description>&lt;p&gt;Objects moving around in memory? Remind me to stick with native C++!&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#8466650</link><pubDate>Wed, 07 May 2008 22:08:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8466650</guid><dc:creator>APatel</dc:creator><description>&lt;p&gt;Maoni,&lt;/p&gt;
&lt;p&gt;We are executing performance tests on a .NET web application and we are running into few issues. If you can shade some light around some of the GC related issues that will be of great help:&lt;/p&gt;
&lt;p&gt;About the Application:&lt;/p&gt;
&lt;p&gt;1.	&lt;/p&gt;
&lt;p&gt;It is a web application with a specialized engine to handle inbound requests (a C# class) with a very simple ASPX page which simply passes the ASP.NET Request object to it.&lt;/p&gt;
&lt;p&gt;2.&lt;/p&gt;
&lt;p&gt;For every request, the Application generates about ~1,000,000 objects (we used Windbg)&lt;/p&gt;
&lt;p&gt;3.&lt;/p&gt;
&lt;p&gt;W3wp.exe memory usage is around 300 MB&lt;/p&gt;
&lt;p&gt;4.&lt;/p&gt;
&lt;p&gt;During each request process, we create many XML and execute at least 4 XSLT transformations (we use managed code - compiled XSLT and not MSXML).&lt;/p&gt;
&lt;p&gt;5.&lt;/p&gt;
&lt;p&gt;Environment: .NET 2.0 with SP1, IIS 6 on Windows Server 2003 R2. The server has single dual-core Xeon and 4 GB of RAM&lt;/p&gt;
&lt;p&gt;Observations:&lt;/p&gt;
&lt;p&gt;1.&lt;/p&gt;
&lt;p&gt;With multi-user load, we see frequent GC Gen 2 collections (around 6 or 7 spikes in % Time spent in GC for Gen 2 every 100 seconds).&lt;/p&gt;
&lt;p&gt;2.&lt;/p&gt;
&lt;p&gt;The LOH size keeps seesawing (it goes down when Gen 2 GC runs)&lt;/p&gt;
&lt;p&gt;3.&lt;/p&gt;
&lt;p&gt;CPU usage is also very high (90% +) throughout the load test.&lt;/p&gt;
&lt;p&gt;Questions:&lt;/p&gt;
&lt;p&gt;1. &lt;/p&gt;
&lt;p&gt;I would like to find out GC collection trigger point logic (i.e. number of objects, memory allocation etc.). From your blog entry, I understand that when allocation exceeds Gen 0 threshold, GC gets invoked. What is this “Gen 0 Allocation Threshold”? Are there other such trigger points? We are not invoking GC from the app code.&lt;/p&gt;
&lt;p&gt;2.&lt;/p&gt;
&lt;p&gt;We have nothing else running on the server and w3wp.exe is taking around 300-400MB of RAM (observed trough the task manager and Perfmon). Why is it not using the remaining available RAM on the system? Are there memory settings for CLR that we can tweak? &lt;/p&gt;
&lt;p&gt;3.&lt;/p&gt;
&lt;p&gt;Are there any tools that you would suggest for memory profiling? We are using couple of tools including VSTS 2008 but they take long time to collect information (few hours at least). We want to pinpoint the “culprits” which cause allocations in LOH through call stack.&lt;/p&gt;
&lt;p&gt;Please let me know if you need more information.&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;
&lt;p&gt;APatel&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#8656735</link><pubDate>Thu, 26 Jun 2008 16:33:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8656735</guid><dc:creator>Martin Kulov</dc:creator><description>&lt;p&gt;Rico,&lt;/p&gt;
&lt;p&gt;do you have any idea why the two msdn magazine articles that you are refering in the first paragraph and no longer available.&lt;/p&gt;
&lt;p&gt;I also found them pretty usefull resource, but now they can not be reached online.&lt;/p&gt;
&lt;p&gt;Why it is deleted?&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#8728902</link><pubDate>Sun, 13 Jul 2008 19:43:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8728902</guid><dc:creator>David V. Corbin</dc:creator><description>&lt;p&gt;I am looking for any available information on how the &amp;quot;Budgets&amp;quot; are calculated. I am seeing some anomolies in client code where I believe the budget is getting lower and lower, but can not resolve the potential cause....&lt;/p&gt;
&lt;p&gt;Any guidance greadly appreciated...&lt;/p&gt;
</description></item><item><title>An excellent series of articles by Maoni about the Garbage Collection | devintelligence.com</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#8771582</link><pubDate>Fri, 25 Jul 2008 10:59:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8771582</guid><dc:creator>An excellent series of articles by Maoni about the Garbage Collection | devintelligence.com</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www19.a2hosting.com/~tarasn/devintelligence.com/?p=755"&gt;http://www19.a2hosting.com/~tarasn/devintelligence.com/?p=755&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>[翻译]更有效的使用垃圾收集</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#8787344</link><pubDate>Tue, 29 Jul 2008 08:53:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8787344</guid><dc:creator>tmfc</dc:creator><description>&lt;p&gt;翻译自Maoni's WebLog 文章Using GC Efficiently – Part 1，Maoni是微软CLR Performance组的成员 本文的目标是解释一些东西的代价好让你可以更好使用托管内存-而不是解释GC本身-只是解释如何使用它而已。我假设绝大多数人对于使用垃圾收集感兴趣，而不想自己实现一个。本文假设读者对GC有基础的了解，如果你需要一些关于GC的背景知识，Jeff Richter写了两篇非常好的MSDN文章，1和2。 首先我会关注工作站级类型的GC（Wks GC），然后我会解释服务器类型的GC（Svr&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#8971985</link><pubDate>Wed, 01 Oct 2008 21:09:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8971985</guid><dc:creator>csjasnoch</dc:creator><description>&lt;p&gt;Hi Maoni,&lt;/p&gt;
&lt;p&gt;I have been digging around and I am trying to find some info on G2 collection. Is it hindered even if the G2 objects are not dead?&lt;/p&gt;
&lt;p&gt;We have an app that has around 35mil objects. This is a very OO app that has been built to do image processing and is modifiable on the fly. So reducing these amounts is not likely.&lt;/p&gt;
&lt;p&gt;However, the app was set up to use a buffer and recycle the objects. The app crashes when GC begins though. I am wondering is GC working so hard because of other G2 objects that are dieing or is it more likely the 35mil references (not dieing) that are doing it?&lt;/p&gt;
</description></item><item><title>re: Using GC Efficiently – Part 1</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9000144</link><pubDate>Wed, 15 Oct 2008 01:58:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9000144</guid><dc:creator>maoni</dc:creator><description>&lt;p&gt;csjasnoch, observing a crash while a GC is in process most likely points to a managed heap corruption. I would suggest you to contact our PSS folks if you need help debugging this.&lt;/p&gt;
</description></item><item><title>   [??????]??????Top 20 .NET Garbage Collection (GC) ??????  : ????????????????????? TAHETA.ORG</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9249895</link><pubDate>Tue, 23 Dec 2008 15:33:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9249895</guid><dc:creator>   [??????]??????Top 20 .NET Garbage Collection (GC) ??????  : ????????????????????? TAHETA.ORG</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://www.taheta.org/?p=94"&gt;http://www.taheta.org/?p=94&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>推荐：CLR 完全介绍-一篇讲解CLR内存回收机制以及常见的调试技巧的文章</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9252915</link><pubDate>Fri, 26 Dec 2008 09:34:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9252915</guid><dc:creator>飞天舞者</dc:creator><description>&lt;p&gt;推荐：CLR 完全介绍-一篇讲解CLR内存回收机制以及常见的调试技巧的文章&lt;/p&gt;
</description></item><item><title>.NET Memory Management – Resources</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9304884</link><pubDate>Sun, 11 Jan 2009 02:40:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9304884</guid><dc:creator>Scott Dorman's Blog</dc:creator><description>&lt;p&gt;Note : This entry was originally posted on 9/14/2008 5:16:11 PM. I present at a lot of the local Florida&lt;/p&gt;
</description></item><item><title>The Inquisitive Coder - Davy Brion&amp;#8217;s Blog  &amp;raquo; Blog Archive   &amp;raquo; Great Links On Using Garbage Collection Efficiently</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9306216</link><pubDate>Sun, 11 Jan 2009 22:24:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9306216</guid><dc:creator>The Inquisitive Coder - Davy Brion&amp;#8217;s Blog  &amp;raquo; Blog Archive   &amp;raquo; Great Links On Using Garbage Collection Efficiently</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://davybrion.com/blog/2009/01/great-links-on-using-garbage-collection-efficiently/"&gt;http://davybrion.com/blog/2009/01/great-links-on-using-garbage-collection-efficiently/&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Performance: Garbage collection modes.</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9518036</link><pubDate>Mon, 30 Mar 2009 09:38:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9518036</guid><dc:creator>Yevgeni Frolov</dc:creator><description>&lt;p&gt;There are allots of improvements that can be done within application’s configuration file the only catch&lt;/p&gt;
</description></item><item><title>还是GC的问题, parallel extensions</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9524905</link><pubDate>Wed, 01 Apr 2009 05:30:46 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9524905</guid><dc:creator>new 维生素C.net()</dc:creator><description>&lt;p&gt;两种GC,做web的需要哪种?经常看到一些asp.net的项目没有根据生产环境选用合适的GC,我甚至都亲眼见过asp.net使用gcConcurency设置为true的场景!&lt;/p&gt;
</description></item><item><title> Maoni s WebLog Using GC Efficiently Part 1 | Cast Iron Cookware</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9643078</link><pubDate>Wed, 27 May 2009 04:13:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9643078</guid><dc:creator> Maoni s WebLog Using GC Efficiently Part 1 | Cast Iron Cookware</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://castironbakeware.info/story.php?title=maoni-s-weblog-using-gc-efficiently-part-1"&gt;http://castironbakeware.info/story.php?title=maoni-s-weblog-using-gc-efficiently-part-1&lt;/a&gt;&lt;/p&gt;
</description></item><item><title>Troubleshooting System.OutOfMemoryExceptions in ASP.NET</title><link>http://blogs.msdn.com/maoni/archive/2004/06/15/156626.aspx#9678326</link><pubDate>Mon, 01 Jun 2009 18:28:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9678326</guid><dc:creator>Useful IIS/ASP.NET Information provided by Microsoft Support Teams</dc:creator><description>&lt;p&gt;Some common causes of OutOfMemoryExceptions in ASP.NET applications and information on how to resolve these exceptions.&lt;/p&gt;
</description></item></channel></rss>