{"id":2410,"date":"2013-01-09T16:21:20","date_gmt":"2013-01-09T05:21:20","guid":{"rendered":"http:\/\/blog.mozilla.org\/nnethercote\/?p=2410"},"modified":"2013-01-09T16:21:20","modified_gmt":"2013-01-09T05:21:20","slug":"memshrink-progress-week-79-82","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/nnethercote\/2013\/01\/09\/memshrink-progress-week-79-82\/","title":{"rendered":"MemShrink progress, week 79&#8211;82"},"content":{"rendered":"<p>I skipped the last MemShrink report due to Christmas, so we have four weeks&#8217; worth of bug fixes today.<\/p>\n<h3>LEAKS<\/h3>\n<p>Joe Walker <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=795988\">fixed a bad leak<\/a> found by Jesse Ruderman:\u00a0 if you closed a browser window with the developer toolbar open it would leak &#8220;everything&#8221;.\u00a0 This was a MemShrink P1 bug.<\/p>\n<p>Anton Kovalyov <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=797065\">fixed a leak involving scratchpad<\/a>.\u00a0 This bug was also found by Jesse Ruderman.<\/p>\n<p>Randell Jesup <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=798323\">fixed some WebRTC leaks<\/a>.<\/p>\n<p>John Schoenick <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=812629\">fixed a leak involving plugins<\/a>.<\/p>\n<p>Josh Aas <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=823837\">fixed a leak in some networking code<\/a>.<\/p>\n<h3>DMD<\/h3>\n<p>I <a href=\"https:\/\/blog.mozilla.org\/nnethercote\/2012\/12\/21\/dmd\/\">wrote a more detailed blog post about DMD<\/a>.\u00a0 Here is the take-away message.<\/p>\n<blockquote><p>about:memory is MemShrink\u2019s not-so-secret weapon when it comes to understanding Firefox\u2019s memory consumption&#8230; and DMD is how we make about:memory better.<\/p><\/blockquote>\n<p>Lots of under-the-hood improvements have been made to DMD since I wrote that.\u00a0 Users on Mac, Linux and B2G who aren&#8217;t afraid of doing their own builds should <a href=\"https:\/\/wiki.mozilla.org\/Performance\/MemShrink\/DMD\">try it out<\/a>.\u00a0 Also, Ehsan Akhgari got it to <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=826779\">build on Windows<\/a>, though it&#8217;s not yet clear how well it works on that platform.\u00a0 If anyone wants to try it out, please let me know how it goes.<\/p>\n<h3>Memory Reporters<\/h3>\n<p>Ben Turner <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=813867\">made the workers memory reporter be able to handle workers that use ctypes<\/a>.\u00a0 This was important, especially on B2G, because each process can have one or two or more such workers &#8212; this is for Firefox chrome stuff, not web content &#8212; and we weren&#8217;t measuring them at all, and they can take multiple MiB each.<\/p>\n<p>I <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=826526\">fixed the orphan DOM node memory reporter<\/a>.\u00a0 The introduction of WebIDL had changed the layout of some paired JS\/DOM objects, and such objects weren&#8217;t being reported.\u00a0 (DMD discovered the unreported memory, and Boris Zbarsky helped me interpret what it meant.)\u00a0 I see this accounting for multiple MiB of orphan nodes when using Gmail.<\/p>\n<p>I <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=826553\">added a memory reporter for the event listenener manager&#8217;s hash table<\/a>.\u00a0 It starts off small, but I&#8217;ve seen it go as high as 1.5 MiB after lots of browsing.\u00a0 (DMD helped me identify this too.)<\/p>\n<p>Kartikaya Gupta <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=818060\">added a memory reporter for graphics textures on Android<\/a>.<\/p>\n<p>I <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=814229\">added a memory reporter for any ctypes data that is hanging off JS objects<\/a>.\u00a0 I added it because one DMD profile on B2G showed non-trivial amounts of ctypes data, but that seems to have been a fluke and it rarely shows much memory now.\u00a0 Oh well.<\/p>\n<h3>Miscellaneous<\/h3>\n<p>Andrew McCreight <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=731853\">improved CC shutdown logging<\/a>, which will make it easier to identify shutdown leaks.<\/p>\n<p>Rail Aliiev and Kartikaya Gupta enabled a new NDK for Fennec builds on releng machines.\u00a0 This might result in smaller binary sizes, which saves memory.<\/p>\n<h3>Bug Counts<\/h3>\n<p>Here are the current bug counts.<\/p>\n<ul>\n<li>P1: 15 (-2\/+0)<\/li>\n<li>P2: 116 (-10\/+0)<\/li>\n<li>P3: 102 (-4\/+0)<\/li>\n<li>Unprioritized: 18 (-0\/+18)<\/li>\n<\/ul>\n<p>The number of unprioritized bugs is high because we didn&#8217;t have a MemShrink meeting this week.\u00a0 This was because Justin Lebar and Kyle Huey are in Berlin for the B2G work week.\u00a0 We&#8217;ll have our next meeting two weeks from today.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I skipped the last MemShrink report due to Christmas, so we have four weeks&#8217; worth of bug fixes today. LEAKS Joe Walker fixed a bad leak found by Jesse Ruderman:\u00a0 if you closed a browser window with the developer toolbar open it would leak &#8220;everything&#8221;.\u00a0 This was a MemShrink P1 bug. Anton Kovalyov fixed a [&hellip;]<\/p>\n","protected":false},"author":139,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4550,4261,4557,451,30,4544,4546],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/posts\/2410"}],"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=2410"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/posts\/2410\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/media?parent=2410"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/categories?post=2410"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/tags?post=2410"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}