{"id":1861,"date":"2012-04-04T16:30:43","date_gmt":"2012-04-04T05:30:43","guid":{"rendered":"http:\/\/blog.mozilla.org\/nnethercote\/?p=1861"},"modified":"2012-04-05T11:11:03","modified_gmt":"2012-04-05T00:11:03","slug":"memshrink-progress-week-42","status":"publish","type":"post","link":"https:\/\/blog.mozilla.org\/nnethercote\/2012\/04\/04\/memshrink-progress-week-42\/","title":{"rendered":"MemShrink progress, week 42"},"content":{"rendered":"<h3>\u00a0Are we slim yet?<\/h3>\n<p>John&#8217;s Schoenick&#8217;s <a href=\"http:\/\/areweslimyet.com\/\">areweslimyet.com<\/a> (AWSY) has had its password removed and is now <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=704646\">open to the public<\/a>!<\/p>\n<p><a href=\"http:\/\/blog.mozilla.org\/nnethercote\/files\/2012\/04\/AWSY.png\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large wp-image-1863\" title=\"AWSY\" src=\"http:\/\/blog.mozilla.org\/nnethercote\/files\/2012\/04\/AWSY-1024x737.png\" alt=\"areweslimyet.com screenshot\" width=\"500\" height=\"359\" srcset=\"https:\/\/blog.mozilla.org\/nnethercote\/files\/2012\/04\/AWSY-1024x737.png 1024w, https:\/\/blog.mozilla.org\/nnethercote\/files\/2012\/04\/AWSY-300x216.png 300w, https:\/\/blog.mozilla.org\/nnethercote\/files\/2012\/04\/AWSY.png 1179w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>This is a major milestone for the MemShrink project.\u00a0 It shows the progress we have made (MemShrink started in earnest in June 2011) and will let us identify regressions more easily.<\/p>\n<p>John&#8217;s done a wonderful job implementing the site.\u00a0 It has lots of functionality:\u00a0 there are multiple graphs, you can zoom in on parts of graphs to see more detail, and you can see revisions, dates and about:memory snapshots for individual runs.<\/p>\n<p>John has also put in a great deal of work refining the methodology to the point where we believe it provides a reasonable facsimile of real-world browsing;\u00a0 please read the <a href=\"http:\/\/areweslimyet.com\/faq.htm\">FAQ<\/a> to understand exactly what is being measured.\u00a0 Many thanks also to Dave Hunt and the QA team for their work on the <a href=\"https:\/\/wiki.mozilla.org\/QA\/Mozmill_Test_Automation\/Endurance_Tests\/Documentation\">Mozmill Endurance Tests<\/a>, which are at the core of AWSY&#8217;s testing.<\/p>\n<p><strong>Update:<\/strong> <a href=\"http:\/\/news.ycombinator.com\/item?id=3796420\">Hacker News has reported on this<\/a>.<\/p>\n<h3>Ghost windows<\/h3>\n<p>Frequent readers of this blog will be familiar with <a href=\"https:\/\/developer.mozilla.org\/en\/Zombie_Compartments\">zombie compartments<\/a>, which are JavaScript compartments that have leaked, due to defects in Firefox or add-ons.\u00a0 Windows (i.e. <code>window<\/code> objects) can also be leaked, and often defects that cause compartments leaks will cause window leaks as well.<\/p>\n<p>Justin Lebar has introduced the notion of &#8220;ghost windows&#8221;.\u00a0 A ghost window is one that meets the following criteria.<\/p>\n<ol>\n<li>Shows up in about:memory under &#8220;window-objects\/top(none)&#8221;.<\/li>\n<li>Does not share a domain name with any window under &#8220;window-objects\/active.<\/li>\n<li>Has met criteria (1) and (2) for a moderate amount of time (e.g. two minutes).<\/li>\n<\/ol>\n<p>The basic idea is that a ghost window has a high chance of representing a genuine leak, and this automated identification of suspicious windows will make leak detection simpler.\u00a0 Justin has added ghost window tracking to <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=738011\">about:memory<\/a>, <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=738624\">about:compartments<\/a>, and <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=737857\">telemetry<\/a>.\u00a0 (These three bugs were all marked as MemShrink:P1.)\u00a0 Ghost window tracking is mostly untested right now, but hopefully it will become another powerful tool for finding memory leaks.<\/p>\n<h3>Add-ons<\/h3>\n<p>We&#8217;ve been <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=700547\">tracking leaky add-ons<\/a> in Bugzilla for a while now, but we&#8217;ve never had a good product\/component to put them in.\u00a0 David Lawrence, Byron Jones, Stormy Peters and I have together <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=731107\">created a new &#8220;Add-ons&#8221; component under the &#8220;Tech Evangelism&#8221; product<\/a>.\u00a0 The rationale for putting it under &#8220;Tech Evangelism&#8221; is that it nicely matches the existing meaning of that phrase &#8212; it&#8217;s a case where a non-Mozilla entity is writing defective code that interacts with Firefox and hurts users&#8217; experiences with and perceptions of Firefox, and Mozilla can only inform, educate and encourage fixes in that defective code.\u00a0 This component is only intended for certain classes of common defects (such as leaks) that Mozilla contributors are tracking.\u00a0 It is not intended for vanilla add-on bugs;\u00a0 as now, they should be reported through whatever bug-reporting mechanism each add-on uses.\u00a0 I&#8217;ve updated the existing open bugs that track leaky add-ons to use this new component.<\/p>\n<p>Leaks in the following add-ons were fixed:\u00a0 <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=731906\">Video DownloadHelper<\/a> (the 2nd most popular add-on on AMO!), <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=731506\">Scrapbook Plus<\/a>, <a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=740363\">Amazon Price Tracker.<\/a><\/p>\n<h3>Bug counts<\/h3>\n<p>This week\u2019s bug counts:<\/p>\n<ul>\n<li>P1: 21 (-5\/+0)<\/li>\n<li>P2: 137 (-1\/+7)<\/li>\n<li>P3: 90 (-1\/+3)<\/li>\n<li>Unprioritized: 1 (-1\/+1)<\/li>\n<\/ul>\n<p>Good progress on the P1 bugs!<\/p>\n<h3>A new reporting schedule<\/h3>\n<p>Many of the weekly MemShrink reports lately have been brief.\u00a0 From now on I plan to write a report every two weeks.\u00a0 This will make things easier for me and will also ensure each report is packed full of interesting things.\u00a0 See you again in two weeks!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00a0Are we slim yet? John&#8217;s Schoenick&#8217;s areweslimyet.com (AWSY) has had its password removed and is now open to the public! This is a major milestone for the MemShrink project.\u00a0 It shows the progress we have made (MemShrink started in earnest in June 2011) and will let us identify regressions more easily. John&#8217;s done a wonderful [&hellip;]<\/p>\n","protected":false},"author":139,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15267,4550,119,4554,30,4544,4546],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/posts\/1861"}],"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=1861"}],"version-history":[{"count":0,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/posts\/1861\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/media?parent=1861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/categories?post=1861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mozilla.org\/nnethercote\/wp-json\/wp\/v2\/tags?post=1861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}