{"id":23155,"date":"2004-11-08T23:03:00","date_gmt":"2004-11-08T23:03:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/maoni\/2004\/11\/08\/tools-that-help-diagnose-managed-memory-related-issues\/"},"modified":"2021-10-04T16:38:37","modified_gmt":"2021-10-04T23:38:37","slug":"tools-that-help-diagnose-managed-memory-related-issues","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/tools-that-help-diagnose-managed-memory-related-issues\/","title":{"rendered":"Tools that help diagnose managed memory related issues"},"content":{"rendered":"<p><span>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.<\/span><\/p>\n<p class=\"MsoNormal\"><font face=\"Verdana\"><b><span>vadump<\/span><\/b><span> is a good start. It\u2019s an mstools tool \u2013 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 an issue or not. It was created a long time ago before managed code was popular so the GC heap is&nbsp; part of &#8220;Other data&#8221; in the output of vadump (heh&#8230;:P). If it&#8217;s a small portion of your working set it&#8217;s better to look elsewhere. It shows a lot of useful info though and I&#8217;ve worked with many external customers that didn&#8217;t know about it so I thought it&#8217;d be useful to mention it.<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><span><font face=\"Verdana\">&nbsp;<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font face=\"Verdana\">Type vadump -? for help. Below is an example using vadump:<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><b><span><font face=\"Verdana\">&nbsp;<\/font><\/span><\/b><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">E:\\clr\\ndp\\clr\\src\\VM&gt;<font color=\"#0000ff\">tlist | findstr \/i devenv<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">1812 devenv.exe<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Microsoft Development Environment [design] &#8211; gcpriv.h<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">E:\\clr\\ndp\\clr\\src\\VM&gt;<font color=\"#0000ff\">vadump -so -p 1812<\/font><\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">Catagory<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Total<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Private Shareable<span>&nbsp;&nbsp;&nbsp; <\/span>Shared<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Pages<span>&nbsp;&nbsp;&nbsp; <\/span>KBytes<span>&nbsp;&nbsp;&nbsp; <\/span>KBytes<span>&nbsp;&nbsp;&nbsp; <\/span>KBytes<span>&nbsp;&nbsp;&nbsp; <\/span>KBytes<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Page Table Pages<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>116<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>464<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>464<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Other System<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>127<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span><span>&nbsp;&nbsp;<\/span>508<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>508<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Code\/StaticData<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>3470<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>13880<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>1000<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>7828<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>5052<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Heap<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>6521<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>26084<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>26084<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Stack<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>51<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>204<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>204<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;<\/span><span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Teb<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>14<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>56<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>56<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Mapped Data<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>943<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>3772<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>444<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>3328<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Other Data<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>6595<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>26380<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>26376<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>4<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">&nbsp;<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Total Modules<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>3470<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>13880<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>1000<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>7828<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>5052<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Total Dynamic Data<span>&nbsp;&nbsp; <\/span>14124<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>56496<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>52720<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>448<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>3328<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>Total System<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>243<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>972<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>972<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">Grand Total Working Set<span>&nbsp;&nbsp;&nbsp; <\/span>17837<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>71348<span>&nbsp;&nbsp;&nbsp;&nbsp; <\/span>54692<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>8276<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>8380<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">&nbsp;<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">Module Working Set Contributions in pages<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp; <\/span>Total<span>&nbsp;&nbsp; <\/span>Private Shareable<span>&nbsp;&nbsp;&nbsp; <\/span>Shared Module<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>10<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>4<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>6<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0 devenv.exe<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>75<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>4<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>71 ntdll.dll<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>64<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>3<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>5<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>56 kernel32.dll<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">\u2026 [more modules omitted]<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">&nbsp;<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>20<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>2<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0<span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>18 NETAPI32.dll<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">&nbsp;<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">Heap Working Set Contributions<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">2564 pages from Process Heap (class 0x00000000)<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0x00240000 &#8211; 0x00340000 242 pages<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0x02A80000 &#8211; 0x02B80000 153 pages<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><font size=\"1\"><span><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span><\/span><span lang=\"DE\">0x02E10000 &#8211; 0x03010000 482 pages<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><span lang=\"DE\"><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0x1AF10000 &#8211; 0x1B310000 911 pages<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span lang=\"DE\"><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0x207D0000 &#8211; 0x20FD0000 776 pages<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><font size=\"1\"><span lang=\"DE\"><span>&nbsp; <\/span><\/span><span>13 pages from Private Heap 0 (class 0x00001000)<\/span><\/font><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <\/span>0x00350000 &#8211; 0x00360000 13 pages<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">\u2026 [more heap data omitted]<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">&nbsp;<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">Stack Working Set Contributions<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp; <\/span>33 pages from stack for thread 00000DE8<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp; <\/span>2 pages from stack for thread 0000071C<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp; <\/span>0 pages from stack for thread 00000CEC<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\"><span>&nbsp;&nbsp; <\/span>1 pages from stack for thread 00000B3C<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font size=\"1\">\u2026 [more stack data omitted]<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><span><font face=\"Verdana\">&nbsp;<\/font><\/span><\/p>\n<p class=\"MsoNormal\"><font face=\"Verdana\" size=\"2\">Usually when we investigate issues, a <b>perfmon<\/b> <b>log<\/b> is essential. It shows you the size of each generation in the GC heap, the number of collections done on each generation, the number of GC handles and etc. And most importantly it shows you a <i>trend<\/i> so you know how your app behaves over a period of time which is often extremely important for discovering problems. See my <\/font><A href=\"http:\/\/blogs.msdn.com\/maoni\/archive\/2004\/06\/03\/148029.aspx\"><font face=\"Verdana\" color=\"#0000ff\" size=\"2\">GC perf counter blog entry<\/font><\/a><font size=\"2\"><font face=\"Verdana\"> for an explanation of these counters.<\/font><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Verdana\" size=\"2\">&nbsp;<\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Verdana\" size=\"2\">When people have trouble finding out what&#8217;s holding onto memory <\/font><a href=\"http:\/\/www.microsoft.com\/downloads\/details.aspx?FamilyId=86CE6052-D7F4-4AEB-9B7A-94635BEEBDDA&amp;displaylang=en\"><font face=\"Verdana\" color=\"#0000ff\" size=\"2\">CLRProfiler<\/font><\/a><font size=\"2\"><font face=\"Verdana\"> is a great tool to help figure that out. The CLRProfiler is a visual tool that shows you a tremendous amount of info on the managed memory usage such as the types of the objects that were allocated and relocated, when GCs were triggered and how much memory is allocated by managed API calls. <span>&nbsp;<\/span>Since it comes with a great in-depth document I won\u2019t repeat stuff here.<\/font><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Verdana\" size=\"2\">&nbsp;<\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Verdana\" size=\"2\">The <b>SoS<\/b>(Son of Strike) debugger extension is also a very useful and powerful tool. It gives you insights that are not easily found in other tools. It comes with the latest <\/font><a href=\"http:\/\/www.microsoft.com\/whdc\/devtools\/debugging\/default.mspx\"><font face=\"Verdana\" color=\"#0000ff\" size=\"2\">Windows Debugger Package<\/font><\/a><font face=\"Verdana\" size=\"2\"> (sos.dll in the clr10 directory). Michael Stanton has <\/font><A href=\"http:\/\/blogs.msdn.com\/mvstanton\/archive\/2004\/04\/05\/108023.aspx\"><font face=\"Verdana\" color=\"#0000ff\" size=\"2\">a nice blog entry<\/font><\/a><font size=\"2\"><font face=\"Verdana\"> about using it.<\/font><\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Verdana\" size=\"2\">&nbsp;<\/font><\/p>\n<p class=\"MsoNormal\"><font face=\"Verdana\" size=\"2\">Abhi Khune has a blog entry that illustrates using some of the tools mentioned above to solve memory related problems. Please take a look at it <\/font><A href=\"http:\/\/blogs.msdn.com\/akhune\/archive\/2004\/06\/11\/153734.aspx\"><font face=\"Verdana\" color=\"#0000ff\" size=\"2\">here<\/font><\/a><font face=\"Verdana\" size=\"2\">.<\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u2019s an mstools tool \u2013 meaning you can find it on your NT CD under bin\\mstools. You can take a snapshot of the process and [&hellip;]<\/p>\n","protected":false},"author":3542,"featured_media":58792,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685],"tags":[322,3011,108],"class_list":["post-23155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","tag-debugging","tag-maoniposts","tag-performance"],"acf":[],"blog_post_summary":"<p>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\u2019s an mstools tool \u2013 meaning you can find it on your NT CD under bin\\mstools. You can take a snapshot of the process and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/23155","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/3542"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=23155"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/23155\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=23155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=23155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=23155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}