Performance/2013-11-07

From MozillaWiki
Jump to: navigation, search

Performance Review - Thursday, Nov 7, 2013

Active Projects - https://wiki.mozilla.org/Performance#Active

A review of all in-process projects.

Incremental Cycle Collection (ICC) - mccr8 (bug 850065)

ETA: landed preffed off by end of year
Status:

  • Investigating weird interactions with XPCWNs (bug 927601, bug 931283, bug 931285)
  • Initial landing will not do incremental unlinking (<10% of CC time usually) to fix a bad interaction with weak references
  • Landing more preparatory CC refactorings (bug 935721)

Keep JS-accessible APIs from blocking the main thread - yoric

ETA:
Status:

  • General Tooling
    • non-blocking screen capture for b2g, thumbnails, swipe history animation (with layout team, no ETA)
    • lots of improvements to async error reporting (landed)
  • Session Restore Refactoring (with ttaubert, smacleod, billm)
    • caching cookies (expected Q4)
    • caching communication (expected Q4)
    • counter-measures against Facebook's misuse of history (no ETA, but high priority)
    • removing synchronous fallback (expected end Q4)
    • writing session restore less often while on battery (expected Q4)
    • removing rewrite upon startup (no ETA)
    • making collection e10s compliant (landed)
    • collecting data piece-wise (expected Q4)
  • Making workers more useful
    • lz4 [de]compression (expected end of month)
    • sqlite access on workers (expected Q4)
    • reducing memory usage of OS.File (landed)
    • a number of new OS.File APIs (landed)
  • Removing main thread I/O
    • URL Classifier (landed)
    • NetUtil.asyncCopy / nsIAsyncStreamCopier (first part landed, more to come, probably in 2014)

Profiler Backend for Mobile - jseward

ETA:
Status:

Reducing time to first paint - Phase 1 - vladan

ETA: Q4
Status:

  • No update

Browser responsiveness benchmark - Phase 1 - vladan, avih

ETA: Q1
Status:

  • meta bug 935680: Find tool to play back inputs & come up with script of inputs
  • bug : Come up with a responsivness measure

Replace Addon Manager SQLITE with JSON file - irving

ETA: Complete
Status:

  • Haven't seen noticeable difference in startup time telemetry
  • Landed in Firefox 26 (bug 853388) and Firefox 25 (bug 853389)
  • slowsql that we were seeing are all gone, used to be high in the list of main thread blocking

Addon Manager - irving (additional add-on manager perf fixes)

ETA: End of 2013
Status:

  • Additional telemetry has landed, is being analyzed now.
  • Need to consider options for removing recursive directory scan (bug 810149).
  • We're now gathering telemetry about add-on startup and shutdown times. We need to decide how to make this available to add-on authors and other interested parties.
  • Telemetry to deterime the specific add-ons that are causing this problem
  • Interaction by files changes in add-on directory and not be Firefox
  • Consider not including add-on files in startup cache
  • Tracking add-on installation work as well
  • Starting to track add-on startup/shutdown times as well
  • ABP 100ms-1000ms startup, several hundreds of miliseconds on shutdown

Smooth Tab Animation - avih

ETA: Done
Status:

  • We're relatively happy.
  • Will still improve with OMTC (OS X has improved considerably with OMTC)
  • Some issues with instrumenting OMTC animation perf (definition and implementation - in progress).

TART - avih, jmaher

ETA: FINISHED
Status:

  • landed and rolled out in September.
  • Australis TART blocker:
    • fx-team and gfx guys had tons of improvements (D3D, SVG caching, others)
    • TART is not a blocker anymore for Australis.
    • There's still one small OSX10.8 issue we should look into (from today).
    • Not happy with lack of dialog with fx-team on what contitutes a blocker (I think I tried creating one, maybe ont enough).

Replace talos tsvg,tscroll with the new X versions - avih, jmaher

ETA: FINISHED
Status: landed and rolled out in September. found regression this week (bug 935008)

Network Cache Rewrite - jduell

ETA: still planning to land 1st rev by end of Q4
Status: Working on in-RAM index so we get eviction and faster cache misses. In progress. That's the last major feature, then we need to debug and land it.

Complete asynchronous history API - Marco Bonardo, Asaf Romano

ETA: Q4
Status: Work is still ongoing, unfortunately delayed to Q4

Reduce impact of bookmarks backups - Marco Bonardo, Raymond Lee

ETA: Firefox 28
Status: Bookmarks Backups are being converted to use Sqlite.jsm, this is part of the "Reduce impact of bookmarks backups" project. I'm not aware of other ongoing conversions. There is instead a shutdown crash, likely due to thread safety issues, that should be investigated and fixed in bug 914070, this has priority over further conversion work.

Reduce Storage connections main-thread operations - Marco Bonardo, David Teller

ETA:
Status:

Improve Text Performance - jet

ETA:
Status: Jet is looking for prioritization of the items on https://etherpad.mozilla.org/textperfworkitems

Reduce impact of thumbnailing - Drew Willicox, Mark Hammond

ETA:
Status:

Firefox OS - Mike Lee

ETA:
Status:

  • App Launch Latency and FPS
    • FxOS 1.2 on par with 1.1; Contacts launch latency better than 1.1
  • Power Usage
    • Hamachi and/or Keon Battery Harnesses built and distributed to all FxOS Perf team members
    • Making good progress towards disabling USB charging via linux kernel; required for supporting automation.
    • Making good progress building custom ammeter that supports software battery disconnect; needed for automation.
  • Automation
    • Eideticker tests now running on Jenkins; working towards continuous integration.
    • Updating Eideticker to work with higher fps cameras.
    • Porting Gaia Perf Testing framework to use Marionette Runner

Telemetry server - mreid, jonasfj

ETA:
Status:

Remove main thread I/O from Login Manager - paolo

ETA: Firefox 28
Status: I've started working on bug 853549 (removing main-thread I/O from the Login Manager), that will most probably land soon in Firefox 28.

Project Proposals / Areas that need work

A review of new project ideas.