{"id":3168,"date":"2017-07-21T13:57:16","date_gmt":"2017-07-21T02:57:16","guid":{"rendered":"http:\/\/blog.mozilla.org\/nnethercote\/?p=3168"},"modified":"2017-07-21T13:57:16","modified_gmt":"2017-07-21T02:57:16","slug":"dmd-is-usable-again-on-all-tier-1-platforms","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/nnethercote\/2017\/07\/21\/dmd-is-usable-again-on-all-tier-1-platforms\/","title":{"rendered":"DMD is usable again on all Tier 1 platforms"},"content":{"rendered":"<p><a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Mozilla\/Performance\/DMD\">DMD<\/a> is heap profiler built into Firefox, best known for being the tool used to\u00a0 diagnose the sources of &#8220;heap-unclassified&#8221; memory in about:memory.<\/p>\n<p>It&#8217;s been unusable on Win32 for a long time due to <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1241684\">incredibly slow start-up times<\/a>. And recently it became very slow on Mac due to a performance regression in libunwind.<\/p>\n<p>Fortunately I have been able to fix this in both cases (<a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1382076\">Win32<\/a>, <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=1371397\">Mac<\/a>) by using FramePointerStackWalk() instead of MozStackWalk() to do the stack tracing within DMD. (The Gecko Profiler likewise uses FramePointerStackWalk() on those two platforms, and it was <a href=\"https:\/\/blog.mozilla.org\/nnethercote\/2017\/04\/04\/improving-the-gecko-profiler\/\">my recent work on the profiler<\/a> that taught me that there was an alternative stack walker available.)<\/p>\n<p>So DMD should be usable and effective on all Tier 1 platforms. I have tested it on\u00a0 Win32, Win64, Linux64 and Mac. I haven&#8217;t tested it in Linux32 or Android. Please let me know if you encounter any problems.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>DMD is heap profiler built into Firefox, best known for being the tool used to\u00a0 diagnose the sources of &#8220;heap-unclassified&#8221; memory in about:memory. It&#8217;s been unusable on Win32 for a long time due to incredibly slow start-up times. And recently it became very slow on Mac due to a performance regression in libunwind. Fortunately I [&hellip;]<\/p>\n","protected":false},"author":139,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4557],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/posts\/3168"}],"collection":[{"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/users\/139"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/comments?post=3168"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/posts\/3168\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/media?parent=3168"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/categories?post=3168"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/tags?post=3168"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}