Performance/Status Meetings/2008-January-23: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(→‎Leaks: fill in bug numbers)
 
(3 intermediate revisions by 2 users not shown)
Line 15: Line 15:
* Still a few leaks left with popular extensions, but haven't triaged remaining bugs yet.
* Still a few leaks left with popular extensions, but haven't triaged remaining bugs yet.
* Peterv has a patch to fix bug in cycle collector that causes many random crashes {{bug|407034}}, still awaiting review.
* Peterv has a patch to fix bug in cycle collector that causes many random crashes {{bug|407034}}, still awaiting review.
* We're keeping closed windows alive too long after they are closed. {{bug|413447}} seem to be one source. RDF bug another.
* We're keeping closed windows alive too long after they are closed
** {{bug|413447}}: nsXBLDocumentInfo can keep closed global window alive seem to be one source
** {{bug|394514}} and {{bug|387491}}: traversal issues related to XUL template code


=== Action Items ===
=== Action Items ===
Line 21: Line 23:
* '''AI:sicking''' Look into enabling trace-refcount, without the tracing part in nightlies.
* '''AI:sicking''' Look into enabling trace-refcount, without the tracing part in nightlies.
* '''AI:cbarrett''' Look into OS leaks on Mac.
* '''AI:cbarrett''' Look into OS leaks on Mac.
* '''AI:dbaron''' Make assertions fatal on new windows leak box.
* <s>'''AI:dbaron''' Make assertions fatal on new windows leak box.</s>
* '''AI:sicking''' Test leaked handles on windows manually using purify.
* '''AI:sicking''' Test leaked handles on windows manually using purify.
* '''AI:sayrer''' Run leak buster while looking for trace-malloc leaks. <B>[didn't get this done--sayrer]</b>
* '''AI:sayrer''' Run leak buster while looking for trace-malloc leaks. <B>[didn't get this done--sayrer]</b>
Line 42: Line 44:
** linux: middle on 1.8, now fastest on 1.9 (30% improvement)
** linux: middle on 1.8, now fastest on 1.9 (30% improvement)


* massive Ts regression in 2006
* Ts improvements
** Ts analysis: {{bug|406810}}
** Ts analysis: {{bug|406810}}
** Related to thread manager landing
** {{bug|311566}} - nsCSSScanner::GatherIdent does lots of string appending
** Darin thinks it might be excessive painting.
** {{bug|412796}} - Optimize fastload system (mmap fileIO, endianness, packed structs)
** {{bug|411579}} - Optimize read file buffer sizes for faster startup times


* Profile Guided Optimization
* Profile Guided Optimization
** WPO turned on for windows ({{bug|361343}}) -- nice performance win on XP
** {{bug|361343}} - Win32 turn-on; {{bug|410994}} - PGO Spidermonkey
** Spidermonkey seems to respond well to PGO under GCC ({{bug|410994}})
** TODO: Figure out Linux (sayrer)
** sayrer has entire browser building with -fprofile-generate on Linux. no results yet.
** TODO: Fix win32 breakage (cairo; possibly fixed with cairo patch?)
** dbaron: shipped fx 1.0 with PGO on linux as well, was a 10% perf win... but compiler upgrade + build system breakage stopped us.  We need to restart this on linux (and see about OSX).
** -GL breaks some things on win32


* {{bug|353962}} -- JS spinlocks vs. full locks (Crashes in Fx2)
* Other
* {{bug|196843}} -- CSS fastload
** {{bug|353962}} -- JS spinlocks vs. full locks (Crashes in Fx2)


* On radar (unowned stuff that people have mentioned have mentioned we should look at at some point)
* On radar (unowned stuff that people have mentioned have mentioned we should look at at some point)
Line 63: Line 64:
** more work to speed up onSecurityChange, but further work will require SSL work and reducing the number of notifications
** more work to speed up onSecurityChange, but further work will require SSL work and reducing the number of notifications
** XPConnect accessor speed ({{bug|412531}}) (request for priority+owner by dietrich)
** XPConnect accessor speed ({{bug|412531}}) (request for priority+owner by dietrich)
* Start/Stop Shark from JS ({{bug|411365}} Patch)
** Gets really clean profiles.
** Install newest [http://developer.apple.com/tools/download/ CHUD]
** Start Shark App.
** Good setting for brief events is config->advanced 20us sample rate
** Put shark in remote mode
** Example from {{bug|412396}} test:
  <html>
  <head>
  <title>Test JPEG Rendering Time - (Hacked from scragz' test)</title>
  <script type="text/javascript">
 
  connectShark();
  startShark(); // Start sampling
 
  startDate = new Date();
  startTime = startDate.getTime() / 1000;
  window.onload = function () {
    var ignoreMe = document.body.offsetWidth;
    var endTime = new Date();
  };
  window.scrollBy(0,1);
  function calceRenderingTime() {
 
    stopShark(); // Stop sampling
    disconnectShark();
 
    endDate = new Date();
    endTime = endDate.getTime() / 1000;
    alert(endTime - startTime);
  }
  </script>
  </head>
  <body onload="calceRenderingTime();">
  ...


=== Action Items ===
=== Action Items ===

Latest revision as of 19:54, 23 January 2008

« Back to Status Meetings

Gecko 1.9 Performance and Leaks Meeting Details

  • Wednesdays - Firefox 3 - 10:00am Pacific, 1:00pm Eastern
  • Script Conference Room, Building S, Mountain View
  • 650-903-0800 or 650-215-1282 x91 Conf# 217 (US/INTL)
  • 1-800-707-2533 (pin 369) Conf# 217 (US)
  • irc.mozilla.org #perf for backchannel

Leaks

  • Most (!!) extension leaks fixed by peters and igors work in bug 412491 and bug 398219.
  • Still a few leaks left with popular extensions, but haven't triaged remaining bugs yet.
  • Peterv has a patch to fix bug in cycle collector that causes many random crashes bug 407034, still awaiting review.
  • We're keeping closed windows alive too long after they are closed
    • bug 413447: nsXBLDocumentInfo can keep closed global window alive seem to be one source
    • bug 394514 and bug 387491: traversal issues related to XUL template code

Action Items

  • AI:sicking Look into enabling trace-refcount, without the tracing part in nightlies.
  • AI:cbarrett Look into OS leaks on Mac.
  • AI:dbaron Make assertions fatal on new windows leak box.
  • AI:sicking Test leaked handles on windows manually using purify.
  • AI:sayrer Run leak buster while looking for trace-malloc leaks. [didn't get this done--sayrer]
  • AI:sicking to go through and prioritize leak bugs

Performance

  • What Tp tests do we need to keep? Some only run on tinderbox which is being phased out. See bug 372870, comment#15 .
  • JPEG/image speedups
  • Txul platform differences according to mac mini machines
    • mac: slowest on 1.8, slower still on 1.9 (30% regression) Looks even or better than branch
    • windows: fastest on 1.8, now in second place (30% regression) -- improving, still slower
    • linux: middle on 1.8, now fastest on 1.9 (30% improvement)
  • Ts improvements
    • Ts analysis: bug 406810
    • bug 311566 - nsCSSScanner::GatherIdent does lots of string appending
    • bug 412796 - Optimize fastload system (mmap fileIO, endianness, packed structs)
    • bug 411579 - Optimize read file buffer sizes for faster startup times
  • Profile Guided Optimization
    • bug 361343 - Win32 turn-on; bug 410994 - PGO Spidermonkey
    • TODO: Figure out Linux (sayrer)
    • TODO: Fix win32 breakage (cairo; possibly fixed with cairo patch?)
  • Other
    • bug 353962 -- JS spinlocks vs. full locks (Crashes in Fx2)
  • On radar (unowned stuff that people have mentioned have mentioned we should look at at some point)
    • Theme optimization
    • roc's scrollbar issues
    • startup performance (fastload perf, loading libXUL and other files, etc.) (unowned)
    • more work to speed up onSecurityChange, but further work will require SSL work and reducing the number of notifications
    • XPConnect accessor speed (bug 412531) (request for priority+owner by dietrich)

Action Items

  • make faster

Fragmentation

  • bug 407459 -- Hook up jemalloc to our build
    • ported to windows, mac and linux. integrated to build system on mac and linux. windows work continuing. Hope to have numbers by end of the week.
  • bug 403830 -- Content arena
  • Other bugs (should have perf and footprint keywords)
    • bug 403354 -- Get rid of nsCStringArray ParseString usage (maybe fixed?)
    • bug 407442 -- nsEventListenerManager allocates a lot [patch]
    • bug 408113 -- JS reallocate context->stackPool arenas way too often [patch]
    • bug 408301 -- XPConnect wrappers w/o XPConnect proto don't share JS scopes with their protos. [patch]
    • bug 410250 -- nsID/nsJSID stupid mallocs [patch]
    • bug 410357 -- use nsAutoTArray for nsCSSDeclaration::mOrder [patch]
    • bug 410392 -- stack allocate gfx objects [patch, needs work]
    • bug 408921 -- Arenas size+header are too big for size classification


Action Items

  • fix things