Performance/2013-11-07
Contents
- 1 Performance Review - Thursday, Nov 7, 2013
- 1.1 Active Projects - https://wiki.mozilla.org/Performance#Active
- 1.1.1 Incremental Cycle Collection (ICC) - mccr8 (bug 850065)
- 1.1.2 Keep JS-accessible APIs from blocking the main thread - yoric
- 1.1.3 Profiler Backend for Mobile - jseward
- 1.1.4 Reducing time to first paint - Phase 1 - vladan
- 1.1.5 Browser responsiveness benchmark - Phase 1 - vladan, avih
- 1.1.6 Replace Addon Manager SQLITE with JSON file - irving
- 1.1.7 Addon Manager - irving (additional add-on manager perf fixes)
- 1.1.8 Smooth Tab Animation - avih
- 1.1.9 TART - avih, jmaher
- 1.1.10 Replace talos tsvg,tscroll with the new X versions - avih, jmaher
- 1.1.11 Network Cache Rewrite - jduell
- 1.1.12 Complete asynchronous history API - Marco Bonardo, Asaf Romano
- 1.1.13 Reduce impact of bookmarks backups - Marco Bonardo, Raymond Lee
- 1.1.14 Reduce Storage connections main-thread operations - Marco Bonardo, David Teller
- 1.1.15 Improve Text Performance - jet
- 1.1.16 Reduce impact of thumbnailing - Drew Willicox, Mark Hammond
- 1.1.17 Firefox OS - Mike Lee
- 1.1.18 Telemetry server - mreid, jonasfj
- 1.1.19 Remove main thread I/O from Login Manager - paolo
- 1.2 Project Proposals / Areas that need work
- 1.1 Active Projects - https://wiki.mozilla.org/Performance#Active
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)
- 'x' versions are much faster than prevision versions (disabling old versions and ts dirty paint has reduced our compute time per push by 24% (http://oduinn.com/blog/2013/11/06/now-saving-47-compute-hours-per-checkin/))
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:
- New server is in production
- new dashboards in production (1+ month data at http://telemetry.mozilla.org )
- on-demand analysis in alpha/beta using mapreduce
- ongoing production analysis framework not quite there yet (jonasfj - I guess about a week or two)
- See mreid blog post for tl;dr http://mreid-moz.github.io/blog/2013/11/06/current-state-of-telemetry-analysis/
- lawrencemandel.com/2013/11/01/telemetry-reboot-firefox-os-probe-expiration/
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.