Performance/Report-2013-09: Difference between revisions

m
 
(12 intermediate revisions by 2 users not shown)
Line 5: Line 5:


==<span style="color: blue">Summary</span>==
==<span style="color: blue">Summary</span>==
A lot of effort is currently targeted at removing work from the main thread. This work is distributed across the graphics, front-end, and performance teams.
The initial work to reduce the impact of the add-on manager on start-up is in Firefox 26. Additional add-on manager work is currently being investigated.
The initial implementation of the network cache rewrite is set to land on Nightly preffed off in the Firefox 27 cycle and is expected to take several months to harden and prepare for release.
The performance tooling continues to improve with the new TART framework for measuring tab animations and continued improvement to the profiler to support mobile.
The current high level engineering performance focus areas are:
The current high level engineering performance focus areas are:
# {{startup}} A reduction of Firefox desktop start-up time. Start-up time was identified as a key retention driver in the Chrome attrition study.
# {{startup}} A reduction of Firefox desktop start-up time. Start-up time was identified as a key retention driver in the Chrome attrition study.
Line 16: Line 24:


===<span style="color: blue">Firefox 24 (release)</span>===
===<span style="color: blue">Firefox 24 (release)</span>===
projects:
;projects:
* {{throughput}} Eliminate costs of about:newtab on tab animation, and improve about:newtab loading time (3)
* {{throughput}} Eliminate costs of about:newtab on tab animation, and improve about:newtab loading time
notable fixes:
;notable fixes:
* {{startup}} Small improvements to reduce start-up I/O ({{bug|881578}}, {{bug|879957}})
* {{startup}} Small improvements to reduce start-up I/O ({{bug|881578}}, {{bug|879957}})
* {{responsive}} VSync support on Windows (bug 856427), Reduced IPC deserialization overhead on ARM ({{bug|871596}}), Removed all main-thread I/O from form history/autocomplete ({{bug|876002}}, {{bug|566746}}, {{bug|697377}}), Content pref consumers migrated to async API ({{bug|831208}})
* {{responsive}} VSync support on Windows (bug 856427), Reduced IPC deserialization overhead on ARM ({{bug|871596}}), Removed all main-thread I/O from form history/autocomplete ({{bug|876002}}, {{bug|566746}}, {{bug|697377}}), Content pref consumers migrated to async API ({{bug|831208}})
Line 24: Line 32:


===<span style="color: blue">Firefox 25 (beta)</span>===
===<span style="color: blue">Firefox 25 (beta)</span>===
projects:
;projects:
* {{responsive}} Remove localStorage (blocks the main thread) from browser about: pages\
* {{responsive}} Remove localStorage (blocks the main thread) from browser about: pages
* {{responsive}} Off main thread compositing (OMTC) for OSX 10.7 and 10.8
* {{responsive}} Off main thread compositing (OMTC) for OSX 10.7 and 10.8
notable fixes:
;notable fixes:
* {{startup}} Session Store I/O and initial session improvements ({{bug|891360}}, {{bug|887394}}), Reduction in Firefox for Android APK size due to reenabling Elfhack - regression from Firefox 20 ({{bug|892355}}), Firefox for Android BrowserToolbar optimization ({{bug|886528}})
* {{startup}} Session Store I/O and initial session improvements ({{bug|891360}}, {{bug|887394}}), Reduction in Firefox for Android APK size due to reenabling Elfhack - regression from Firefox 20 ({{bug|892355}}), Firefox for Android BrowserToolbar optimization ({{bug|886528}})
* {{responsive}} JS file handing improvement via not flushing OS.File.writeAtomic by default ({{bug|886997}}), Firefox for Android memory improvements via and libxul size reduction ({{bug|887902}})
* {{responsive}} JS file handing improvement via not flushing OS.File.writeAtomic by default ({{bug|886997}}), Firefox for Android memory improvements via and libxul size reduction ({{bug|887902}})
Line 34: Line 42:


===<span style="color: blue">Firefox 26 (aurora)</span>===
===<span style="color: blue">Firefox 26 (aurora)</span>===
projects:
;projects:
* {{startup}} Replace Addon Manager SQLITE with JSON file to reduce impact on start-up due to disk IO
* {{startup}} Replace Addon Manager SQLITE with JSON file to reduce impact on start-up due to disk IO
* {{responsive}} Keep JS-accessible APIs from blocking the main thread
* {{responsive}} Reduce Storage connections main-thread operations - API complete at this point, FHR conversion complete, Sqlite.jsm and asyncClose consumers already getting perf wins, additional consumer migration to follow
* {{responsive}} Reduce Storage connections main-thread operations - API complete at this point, FHR conversion complete, Sqlite.jsm and asyncClose consumers already getting perf wins, additional consumer migration to follow
* {{responsive}} Downloads API rewrite to remove noticeable UI pauses due to writing files on the main thread - downloads are a top cause of main thread jank
* {{responsive}} Downloads API rewrite to remove noticeable UI pauses due to writing files on the main thread - downloads are a top cause of main thread jank
* {{tooling}} Improved Talos tests that really stress svg/scroll performance
* {{tooling}} Improved Talos tests that really stress svg/scroll performance
* {{tooling}} TART, new tab animation test framework
* {{tooling}} TART, new tab animation test framework
notable fixes:
 
;notable fixes:
* {{startup}} Small start-up improvement on Android due to Telemetry change ({{bug|905759}}, {{bug|906088}})
* {{startup}} Small start-up improvement on Android due to Telemetry change ({{bug|905759}}, {{bug|906088}})
* {{responsive}} Off-main-thread sqlite AsyncClose ({{bug|874814}})
* {{responsive}} Off-main-thread sqlite AsyncClose ({{bug|874814}}), Don't load images that aren't visible - was a cause of jank and out of memory (OOM) errors on image heavy sites ({{bug|847223}}), Blocklist fewer graphics cards ({{bug|901494}}, {{bug|904266}})
* {{tooling}} Better error reporting for Promise and Task ({{bug|908955}}), Support for Task-based asynchronous tests in mochitest-browser ({{bug|872229}})


===<span style="color: blue">Firefox 27 (nightly)</span>===
===<span style="color: blue">Firefox 27 (nightly)</span>===
projects:
;projects:
* {{defer}} {{startup}} Reducing time to first paint for cold start-up on slow/old hardware
* {{startup}} Reducing time to first paint for cold start-up on slow/old hardware<sup>[[#1|1]]</sup>
* {{responsive}} Complete asynchronous history API
* {{responsive}} Complete asynchronous history API
* {{responsive}} Reduce impact of bookmarks backups
* {{responsive}} Reduce impact of bookmarks backups
* {{responsive}} Incremental Cycle Collection
* {{responsive}} Incremental Cycle Collection
* {{throughput}} Improve Text Performance
* {{responsive}} Off main thread compositing (OMTC) for Windows
* Reduce impact of bookmarks backups
* {{responsive}} Reduce impact of session store cookie collection<sup>[[#2|2]]</sup>
* {{responsive}} Reduce impact of session store thread communication<sup>[[#2|2]]</sup>
* {{responsive}} e10s-style asynchronous session store tab state collection<sup>[[#2|2]]</sup>
* {{responsive}} SQLite for chrome workers<sup>[[#2|2]]</sup>
 
===<span style="color: blue">Firefox 28</span>===
===<span style="color: blue">Firefox 28</span>===
projects:
;projects:


* {{responsive}} OMTC image animation
* {{responsive}} Unification of mobile platform graphics (buffer rotation / tiling)
* Improve Places Host Storage
* Improve Places Host Storage
* Improve Space Efficiency of Places URL Index
* Improve Space Efficiency of Places URL Index


===<span style="color: blue">Firefox 29+</span>===
===<span style="color: blue">Firefox 29+</span>===
projects:
;projects:
* {{responsive}} Reduce impact of thumbnailing by moving work to background thread
* {{responsive}} Reduce impact of thumbnailing by moving work to background thread
* {{responsive}} OMTC CSS animations
* {{throughput}} Network Cache Rewrite
* {{throughput}} Network Cache Rewrite
* {{tooling}} New unwind library for profiling on mobile
* {{tooling}} New unwind library for profiling on mobile
==<span style="color: blue">Notes</span>==
====1====
Reducing time to first paint for cold start-up on slow/old hardware pushed back to Firefox 27 (was previously targeted at Firefox 26) due to focus on other projects.
====2====
The Keep JS-accessible APIs from blocking the main thread project now reports each individual component in the project in this report.
====3====
The Improve Text Performance project has been removed and will be replaced by a more specific project that is not yet well defined.
Confirmed users
247

edits