Confirmed users
2,473
edits
(Created page with "=Performance Review - Thursday, Aug 1, 2013= ==Active Projects - https://wiki.mozilla.org/Performance#Active== A review of all in-process projects. ===Incremental Cycle Coll...") |
No edit summary |
||
| Line 3: | Line 3: | ||
==Active Projects - https://wiki.mozilla.org/Performance#Active== | ==Active Projects - https://wiki.mozilla.org/Performance#Active== | ||
A review of all in-process projects. | A review of all in-process projects. | ||
===Incremental Cycle Collection (ICC) - mccr8 ({{bug|850065})=== | ===Incremental Cycle Collection (ICC) - mccr8 ({{bug|850065}})=== | ||
ETA: Q3...<br/> | ETA: Q3...<br/> | ||
Status: | Status: | ||
| Line 21: | Line 21: | ||
===Profiler Backend for Mobile - jseward=== | ===Profiler Backend for Mobile - jseward=== | ||
ETA:<br/> | ETA:<br/> | ||
* CFI/EXIDX unwind speedups: planned via caching of unwind rules (893542). This is clearly important, but is hard to assess how much speedup it will give without implementing it. Late august. | * CFI/EXIDX unwind speedups: planned via caching of unwind rules ({{bug|893542}}). This is clearly important, but is hard to assess how much speedup it will give without implementing it. Late august. | ||
* Other unwind speedups on ARM/{B2G,Android}, together worth around a factor of 2 at least | * Other unwind speedups on ARM/{B2G,Android}, together worth around a factor of 2 at least | ||
** 892774 (speed up MyCodeModules::GetModuleForAddress) -- r+'d | ** {{bug|892774}} (speed up MyCodeModules::GetModuleForAddress) -- r+'d | ||
** 894264 ( don't generate frames we aren't going to use) -- r?'d | ** {{bug|894264}} ( don't generate frames we aren't going to use) -- r?'d | ||
* breakpad/faulty.lib interface stability: glandium holds the token on this | * breakpad/faulty.lib interface stability: glandium holds the token on this | ||
** 882608 (Segfault with MOZ_LINKER_ONDEMAND=0) -- FIXED (by glandium) | ** {{bug|882608}} (Segfault with MOZ_LINKER_ONDEMAND=0) -- FIXED (by glandium) | ||
** 887685 (__dl_get_mappable_length(dlopen("libmozglue.so", ...) fails): not yet fixed. Causes memory corruption and potential crashyness in certain profiling configs on Android. | ** {{bug|887685}} (__dl_get_mappable_length(dlopen("libmozglue.so", ...) fails): not yet fixed. Causes memory corruption and potential crashyness in certain profiling configs on Android. | ||
Status: | Status: | ||
* b2g wants more resolution in sampling (1000/sec, 50% cpu overhead) in order to better analyze gfx slowness/problems | * b2g wants more resolution in sampling (1000/sec, 50% cpu overhead) in order to better analyze gfx slowness/problems | ||
| Line 36: | Line 36: | ||
Status: | Status: | ||
* fsync'ing experiment | * fsync'ing experiment | ||
* Reducing time spent on initializing D3D & D2D: bug 899783 & bug 890336 | * Reducing time spent on initializing D3D & D2D: {{bug|899783}} & {{bug|890336}} | ||
* next: libraries loaded at startup, SafeBrowsing, FHR study | * next: libraries loaded at startup, SafeBrowsing, FHR study | ||
===Replace Addon Manager SQLITE with JSON file - irving=== | ===Replace Addon Manager SQLITE with JSON file - irving=== | ||
Status: | Status: | ||
* AddonRepository, XPIProvider shutdown on profile-before-change, DeferredSave and has landed in the Fx25 cycle (bug 853389, bug 874890, bug 853388) | * AddonRepository, XPIProvider shutdown on profile-before-change, DeferredSave and has landed in the Fx25 cycle ({{bug|853389}}, {{bug|874890}}, {{bug|853388}}) | ||
* XPIProvider ready to land, probably should wait on the beginning of next cycle (bug 853388) | * XPIProvider ready to land, probably should wait on the beginning of next cycle ({{bug|853388}}) | ||
===Smooth Tab Animation - avih=== | ===Smooth Tab Animation - avih=== | ||
| Line 49: | Line 49: | ||
* TART: | * TART: | ||
** Happy with it, Being reviewed. | ** Happy with it, Being reviewed. | ||
** Blocked by minor bug 888899. | ** Blocked by minor {{bug|888899}}. | ||
** measures tab animations and tells how fast we can animate the tabs under different circumstancees - measuring empty tab, new tab page, and dpi scaling | ** measures tab animations and tells how fast we can animate the tabs under different circumstancees - measuring empty tab, new tab page, and dpi scaling | ||
* Replace talos tsvg,tscroll with the new X versions (with jmaher). | * Replace talos tsvg,tscroll with the new X versions (with jmaher). | ||
| Line 55: | Line 55: | ||
** Status: | ** Status: | ||
*** Performs well in production. | *** Performs well in production. | ||
*** Blocked by minor bug 888899. | *** Blocked by minor {{bug|888899}}. | ||
* Windows scroll performance/smoothness - not very good. | |||
** Status: Compiled an extensive benchmark - {{Bug|894128}}. | |||
** Next: GFX guys should analyze the data and file specific bugs. | |||
** new project for gfx team | |||
Newtab and reflows - ttaubert | |||
ETA: | ===Newtab and reflows - ttaubert=== | ||
ETA: <br/> | |||
Status: Done. | Status: Done. | ||
* improved load of new tab, visible when loading multiple tabs in succession or via disabling the pref | |||
* Newtab preload is enabled by default. To disable: browser.newtab.preload=false | |||
===Network Cache Rewrite - jduell=== | |||
ETA: Q4<br/> | |||
Status: close to an API-complete implementation. Not clear yet if it will be performant enough to replace existing cache, or if additional work (tuning, adding in-memory cache map) will be needed first. | |||
Note: we got large perf improvements by changing the way we handle incoming events: instead of using XPCOM's "process events in order" we're now using a hand-rolled scheduler that prioritizes cache reads over writes. Significant page load speedup. | |||
devoting some time to b2g project as well, may or may not impact this project | devoting some time to b2g project as well, may or may not impact this project | ||
Remove localStorage from browser pages - Marco Bonardo | |||
ETA: end of July - COMPLETE (tracking bug 729777) | ===Remove localStorage from browser pages - Marco Bonardo=== | ||
ETA: end of July - COMPLETE (tracking {{bug|729777}})<br/> | |||
Status: | Status: | ||
* Failures in Jetpack and Social API have been fixed with help of the respective teams | |||
* {{bug|889442}} landed, about pages cannot use DOM Storage anymore | |||
===Complete asynchronous history API - Marco Bonardo, Asaf Romano=== | |||
ETA: late September<br/> | |||
Complete asynchronous history API - Marco Bonardo, Asaf Romano | |||
ETA: late September | |||
Status: | Status: | ||
* Conversion of GetPlacesInfo consumers requires deeper changes to existing code | |||
* Writing a new async transactions manager for Places, the API is slightly inspired by the HTML5 UndoManager, experimental patch got positive feedback. ({{bug|891303}}) | |||
* Removing binary annotations to simplify the conversion. Rarely used and often abused API. ({{bug|895839}}) | |||
* Adopting promises in some APIs (livemarks so far) to simplify the conversion. ({{bug|896193}}) | |||
* Experimenting with automatic batches for Places views updates. This largely simplifies tracking changes for improving views performance. Trying to have reviewable patch by EOW. ({{bug|894331}}) | |||
* Marcos has added deprecation for the synchronous charset APIs in history, {{bug|854925}} will remove them after a couple versions | |||
* RemovePlaces on hold for now, while we move on with the above stuff | |||
===Reduce impact of bookmarks backups - Marco Bonardo, Raymond Lee=== | |||
ETA: late September<br/> | |||
Reduce impact of bookmarks backups - Marco Bonardo, Raymond Lee | |||
ETA: late September | |||
Status: | Status: | ||
* https://etherpad.mozilla.org/places-backups-changes | |||
* We are at stage 3, API has been finalized, now working on improvements to the behavior, to reduce duplicate or useless work | |||
* Raymond is currently working on addition of GUIDs to existing backups, this allows to avoid some work and simplify Sync and PICL code. | |||
* Stage 4 will take care of sync to async conversion of the backend code, more specifically the creation of backups will happen in background, so we can completely avoid shutdown work. | |||
===Reduce Storage connections main-thread operations - Marco Bonardo, David Teller=== | |||
ETA: complete API by mid August, iterative consumers conversion following<br/> | |||
Reduce Storage connections main-thread operations - Marco Bonardo, David Teller | |||
ETA: complete API by mid August, iterative consumers conversion following | |||
Status: | Status: | ||
* Patch for OMT AsyncClose pending for review. Delayed due to difficulties in both closing properly the connection and communicating development errors to consumers. | |||
===Asynchronous Places Annotations - Marco Romano, Asaf Romano=== | |||
ETA: component estimated late October, consumers conversion TBD<br/> | |||
Asynchronous Places Annotations - Marco Romano, Asaf Romano | |||
ETA: component estimated late October, consumers conversion TBD | |||
Status: | Status: | ||
* on hold, until we have better understanding of the time needed to complete async history API, likely to restart at late September/Early October. | |||
===Improve Text Performance- jet=== | |||
ETA: Q3<br/> | |||
Improve Text Performance- jet | |||
ETA: Q3 | |||
Status: | Status: | ||
* We added adjustable text caching pref as part of {{bug|834609}} and profiling text-heavy pages. More data coming... | |||
* We've started collecting metrics for text shaping (to measure correctness) and will add timing measurements in the future. These tests generate millions of words and a terabyte of data with each run so it's not something we'll do every night, but will do every time we update our text shaping engine: http://people.mozilla.org/~jkew/hb-test/stats.html | |||
===Downloads API rewrite - paolo=== | |||
ETA: First half of August (adjusted)<br/> | |||
Downloads API rewrite - paolo | |||
ETA: First half of August (adjusted) | |||
Status: | Status: | ||
* Consumer interface and documentation complete | |||
* New preference to switch the Downloads Panel back-end (Firefox 25) | |||
* Will publish a detailed post for add-on developers | |||
* Major remaining feature work all assigned (Firefox 26) | |||
==Project Proposals / Areas that need work== | |||
Report:<br/> | |||
Project Proposals / Areas that need work | |||
Report: | |||
Want to frame the projects | Want to frame the projects | ||
* release driven? | * release driven? | ||
* perf area driven? i.e. startup and shutdown, tab strip, general responsiveness, content loading | * perf area driven? i.e. startup and shutdown, tab strip, general responsiveness, content loading | ||