<?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>.NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx</link><description>I was reading this post about spam ping-bots from OldNewThing and it makes me a bit mad because they just steal your content to make money, and create a lot of spam in my mailbox making it harder for me to find the real comments/track-backs. What is even</description><dc:language>sv-SE</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Link Listing - February 20, 2008</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#7837152</link><pubDate>Thu, 21 Feb 2008 16:18:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7837152</guid><dc:creator>Christopher Steen</dc:creator><description>&lt;p&gt;Announcements CI Factory Version 1.0 [Via: jflowers ] ASP.NET Digg.com like Login Control [Via: mikedopp...&lt;/p&gt;
</description></item><item><title>Link Listing - February 20, 2008</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#7837163</link><pubDate>Thu, 21 Feb 2008 16:19:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7837163</guid><dc:creator>Christopher Steen</dc:creator><description>&lt;p&gt;Link Listing - February 20, 2008&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#7873427</link><pubDate>Sun, 24 Feb 2008 10:54:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7873427</guid><dc:creator>charju</dc:creator><description>&lt;p&gt;Great and cool!!!&lt;/p&gt;
&lt;p&gt;Especially the demo code in deconstructor great simlulated memory issues by a long time finalize action.&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#7890067</link><pubDate>Mon, 25 Feb 2008 11:01:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7890067</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;after &amp;quot; 2. Run !dumpheap -stat.....&amp;quot; &amp;nbsp;how do you feel link object has problem? &amp;nbsp;if to me ,i will find the strings.&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#7890372</link><pubDate>Mon, 25 Feb 2008 11:34:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7890372</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;The reason I would look as Link objects as a problem is because there are 36000 of them which seems like a pretty high number. &amp;nbsp;Whether it's a high number or not of course depends on what you think the app should use. &amp;nbsp;In this case I would have assumed that it would have about 100 or so active link objects at an y given time.&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#8324530</link><pubDate>Wed, 19 Mar 2008 06:16:11 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8324530</guid><dc:creator>KB</dc:creator><description>&lt;p&gt;Hey Tess,&lt;/p&gt;
&lt;p&gt;Hmm, followed right along until I got to !eeheap -gc and !dumpheap -stat. &amp;nbsp;Get back &amp;quot;No export dumpheap found&amp;quot; on both. &amp;nbsp;Dump file is like 854 MB. &amp;nbsp;Any ideas?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;KB&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#8324967</link><pubDate>Wed, 19 Mar 2008 09:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8324967</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Hi KB,&lt;/p&gt;
&lt;p&gt;that means that you didnt load sos, run .loadby sos mscorwks and try the !eeheap and !dumpheap commands again &lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#8360667</link><pubDate>Sat, 05 Apr 2008 16:57:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8360667</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;Run &amp;quot;tinyget -srv:localhost -uri:/BuggyBits/Links.aspx -loop:4000&amp;quot; &amp;nbsp; --&amp;gt; I run this, but the mem does not go high.&lt;/p&gt;
&lt;p&gt;I have run the reg file. &amp;nbsp;&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#8364850</link><pubDate>Mon, 07 Apr 2008 12:41:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8364850</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;Dear Tess&lt;/p&gt;
&lt;p&gt;tinyGet seem like not work very well.&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#8683783</link><pubDate>Thu, 03 Jul 2008 15:04:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8683783</guid><dc:creator>vk</dc:creator><description>&lt;p&gt;curious to know if you have you seen any blocked finalizers in the real world? any examples of those? in my little time debugging asp.net applications, i havent seen one blocked finalizer issue.. &lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#8831947</link><pubDate>Mon, 04 Aug 2008 22:30:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8831947</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;I have seen plenty of real world cases with blocked finalizers. &amp;nbsp;The most common ones are ones where the finalizer is blocked by an orphaned critical section i.e. a critical section where the thread that owned the critical section got an exception and quit before leaving the critical section. &amp;nbsp; Some other common ones are issues where the finalizer is waiting for an STA thread... if you look in the post index, under memory issues there are a few posts of real-life examples there... &lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#9564198</link><pubDate>Thu, 23 Apr 2009 10:56:32 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9564198</guid><dc:creator>Petter</dc:creator><description>&lt;p&gt;Hi Tess,&lt;/p&gt;
&lt;p&gt;If someone is new to windbg (like me) it may not be clear how you got get the address of a link object at the end of step 2. I used &amp;nbsp;!dumpheap -type Link , and picked one. Is this how it is intended?&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#9564299</link><pubDate>Thu, 23 Apr 2009 11:56:18 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9564299</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Petter, &amp;nbsp;agreed, thanks for pointing it out... &amp;nbsp;&lt;/p&gt;
&lt;p&gt;and yes that is a good way to get to it... (alternatively you can do !dumpheap -mt &amp;lt;Links MT from !dumpheap&amp;gt;) &lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#9649282</link><pubDate>Fri, 29 May 2009 01:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9649282</guid><dc:creator>nipam</dc:creator><description>&lt;p&gt;Hi Tess,&lt;/p&gt;
&lt;p&gt;We are seeing more than 25% of time is going in GC and sometime it reacht to 35%. I was going through your labs to find out what could be possible root cause of same. Below is what &amp;quot;!finalizequeue&amp;quot; returning me. Can you please tell me too many objects in Generation 2 is possible root cause of same? How can I find out those objects and whats holding its references?&lt;/p&gt;
&lt;p&gt;0:000&amp;gt; !finalizequeue&lt;/p&gt;
&lt;p&gt;SyncBlocks to be cleaned up: 0&lt;/p&gt;
&lt;p&gt;MTA Interfaces to be released: 0&lt;/p&gt;
&lt;p&gt;STA Interfaces to be released: 0&lt;/p&gt;
&lt;p&gt;----------------------------------&lt;/p&gt;
&lt;p&gt;------------------------------&lt;/p&gt;
&lt;p&gt;Heap 0&lt;/p&gt;
&lt;p&gt;generation 0 has 632 finalizable objects (2c87c168-&amp;gt;2c87cb48)&lt;/p&gt;
&lt;p&gt;generation 1 has 5 finalizable objects (2c87c154-&amp;gt;2c87c168)&lt;/p&gt;
&lt;p&gt;generation 2 has 8275 finalizable objects (2c874008-&amp;gt;2c87c154)&lt;/p&gt;
&lt;p&gt;Ready for finalization 0 objects (2c87cb48-&amp;gt;2c87cb48)&lt;/p&gt;
&lt;p&gt;------------------------------&lt;/p&gt;
&lt;p&gt;Heap 1&lt;/p&gt;
&lt;p&gt;generation 0 has 486 finalizable objects (2c89709c-&amp;gt;2c897834)&lt;/p&gt;
&lt;p&gt;generation 1 has 58 finalizable objects (2c896fb4-&amp;gt;2c89709c)&lt;/p&gt;
&lt;p&gt;generation 2 has 10219 finalizable objects (2c88d008-&amp;gt;2c896fb4)&lt;/p&gt;
&lt;p&gt;Ready for finalization 0 objects (2c897834-&amp;gt;2c897834)&lt;/p&gt;
&lt;p&gt;------------------------------&lt;/p&gt;
&lt;p&gt;Heap 2&lt;/p&gt;
&lt;p&gt;generation 0 has 723 finalizable objects (2c6e2d00-&amp;gt;2c6e384c)&lt;/p&gt;
&lt;p&gt;generation 1 has 50 finalizable objects (2c6e2c38-&amp;gt;2c6e2d00)&lt;/p&gt;
&lt;p&gt;generation 2 has 9996 finalizable objects (2c6d9008-&amp;gt;2c6e2c38)&lt;/p&gt;
&lt;p&gt;Ready for finalization 0 objects (2c6e384c-&amp;gt;2c6e384c)&lt;/p&gt;
&lt;p&gt;------------------------------&lt;/p&gt;
&lt;p&gt;Heap 3&lt;/p&gt;
&lt;p&gt;generation 0 has 812 finalizable objects (2c8419d4-&amp;gt;2c842684)&lt;/p&gt;
&lt;p&gt;generation 1 has 21 finalizable objects (2c841980-&amp;gt;2c8419d4)&lt;/p&gt;
&lt;p&gt;generation 2 has 10750 finalizable objects (2c837188-&amp;gt;2c841980)&lt;/p&gt;
&lt;p&gt;Ready for finalization 0 objects (2c842684-&amp;gt;2c842684)&lt;/p&gt;
&lt;p&gt;------------------------------&lt;/p&gt;
&lt;p&gt;Heap 4&lt;/p&gt;
&lt;p&gt;generation 0 has 860 finalizable objects (2c8d6f88-&amp;gt;2c8d7cf8)&lt;/p&gt;
&lt;p&gt;generation 1 has 10 finalizable objects (2c8d6f60-&amp;gt;2c8d6f88)&lt;/p&gt;
&lt;p&gt;generation 2 has 10198 finalizable objects (2c8cd008-&amp;gt;2c8d6f60)&lt;/p&gt;
&lt;p&gt;Ready for finalization 0 objects (2c8d7cf8-&amp;gt;2c8d7cf8)&lt;/p&gt;
&lt;p&gt;------------------------------&lt;/p&gt;
&lt;p&gt;Heap 5&lt;/p&gt;
&lt;p&gt;generation 0 has 532 finalizable objects (2c830030-&amp;gt;2c830880)&lt;/p&gt;
&lt;p&gt;generation 1 has 24 finalizable objects (2c82ffd0-&amp;gt;2c830030)&lt;/p&gt;
&lt;p&gt;generation 2 has 9200 finalizable objects (2c827010-&amp;gt;2c82ffd0)&lt;/p&gt;
&lt;p&gt;Ready for finalization 0 objects (2c830880-&amp;gt;2c830880)&lt;/p&gt;
&lt;p&gt;------------------------------&lt;/p&gt;
&lt;p&gt;Heap 6&lt;/p&gt;
&lt;p&gt;generation 0 has 562 finalizable objects (2c81dd84-&amp;gt;2c81e64c)&lt;/p&gt;
&lt;p&gt;generation 1 has 34 finalizable objects (2c81dcfc-&amp;gt;2c81dd84)&lt;/p&gt;
&lt;p&gt;generation 2 has 9021 finalizable objects (2c815008-&amp;gt;2c81dcfc)&lt;/p&gt;
&lt;p&gt;Ready for finalization 0 objects (2c81e64c-&amp;gt;2c81e64c)&lt;/p&gt;
&lt;p&gt;------------------------------&lt;/p&gt;
&lt;p&gt;Heap 7&lt;/p&gt;
&lt;p&gt;generation 0 has 735 finalizable objects (2c8552c8-&amp;gt;2c855e44)&lt;/p&gt;
&lt;p&gt;generation 1 has 45 finalizable objects (2c855214-&amp;gt;2c8552c8)&lt;/p&gt;
&lt;p&gt;generation 2 has 10371 finalizable objects (2c84b008-&amp;gt;2c855214)&lt;/p&gt;
&lt;p&gt;Ready for finalization 0 objects (2c855e44-&amp;gt;2c855e44)&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Nipam Patel&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#9652041</link><pubDate>Fri, 29 May 2009 10:03:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9652041</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Hi Nipam,&lt;/p&gt;
&lt;p&gt;In general, the budget for gen 0 and gen 1 is relatively small, which means that if your process uses a lot of .net memory then most of it will be in gen 2. &amp;nbsp;That is not really indicative of anything other than that you are using a bit of memory.&lt;/p&gt;
&lt;p&gt;As far as high cpu in gc, &amp;nbsp;25-35% is not extreme by any means for a process that allocates a lot of memory, but things that will drive the cpu in gc up are 1. classes with unneccessary destructors or where you dont call dispose properly and 2. high allocation rates on the large object heap&lt;/p&gt;
&lt;p&gt;There might be other reasons but the two above are the most common ones.&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#9667835</link><pubDate>Sun, 31 May 2009 11:14:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9667835</guid><dc:creator>Nipam</dc:creator><description>&lt;p&gt;Hi Tess,&lt;/p&gt;
&lt;p&gt;Thanks for quick reply on my previous comment !! I was doing further analysis on what things can go wrong on production. One thin I found is on production &amp;quot;Pipleline Instance Count&amp;quot; (HttpApplication) is constantly rising and it never comes down. We handle almost 60-200 request/sec on production and we see &amp;quot;Pipeline Instance Count&amp;quot; to go till 20,000+ and keep rising. When we reset IIS we see things moving smooth as soon as we see &amp;quot;Pipleline Instance Count&amp;quot; rising lot of time getting spent on GC. We have almost 1:2 ratio for Gen1:Gen0 collection counter. Also we see Gen2 heap size very high almost 700MB when problem starts mounting. If you can point in direction to this issue will be really helpful to us.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Nipam Patel&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#9915935</link><pubDate>Sun, 01 Nov 2009 20:56:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9915935</guid><dc:creator>Sarkar2009</dc:creator><description>&lt;p&gt;Hi Tess,&lt;/p&gt;
&lt;p&gt; &amp;nbsp; I am experiencing a memory leak on the application I am working on. The committed Bytes reaches &amp;nbsp;2GB after couple of hours of running the application. Application consistes of both managed and unmamaged code. Can I equate the total committed bytes equal to sum of Virtual bytes of all the processes running on my desktop. Is this a valid comparison to determine which processes are causing the leak?&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/20/net-debugging-demos-lab-3-memory-review.aspx#9916089</link><pubDate>Mon, 02 Nov 2009 10:31:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9916089</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Hi Sarkar,&lt;/p&gt;
&lt;p&gt;Not sure which values you are looking at but virtual bytes and committed bytes are completely different. &amp;nbsp;Virtual bytes for a given process is the memory the process reserves, committed bytes is how much of that memory it has commited (simplified, how much it actually used). &lt;/p&gt;
</description></item></channel></rss>