Performance: Difference between revisions
m (→Downloads API Rewrite: Minor edit: typo, formatting) |
|||
| Line 116: | Line 116: | ||
{{PerfProject | {{PerfProject | ||
|impact={{desktop}} | |impact={{desktop}} | ||
|team=Paolo Amadini (lead), Raymond Lee, Felipe | |team=Paolo Amadini (lead), Raymond Lee, Felipe Gomes | ||
|duration= Late July / early August for reaching the initial goal in Nightly. | |duration= Late July / early August for reaching the initial goal in Nightly. | ||
Probably another month or two (with lower bandwidth) for follow-ups. | Probably another month or two (with lower bandwidth) for follow-ups. | ||
|goal=To improve responsiveness when downloads are started, by removing the main-thread I/O caused by access to | |goal=To improve responsiveness when downloads are started, by removing the main-thread I/O caused by access to "downloads.sqlite". The concrete goal is to ensure that SQL statements involving moz_downloads no longer appear in the "slow SQL" Telemetry dashboard. | ||
"downloads.sqlite". The concrete goal is to ensure that SQL statements involving moz_downloads no longer appear in the "slow SQL" Telemetry dashboard. | |||
|reports=firefox-dev mailing list, [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo weekly updates tool]. | |reports=firefox-dev mailing list, [http://benjamin.smedbergs.us/weekly-updates.fcgi/user/paolo weekly updates tool]. | ||
|work={{bug|825588}} | |work={{bug|825588}} | ||
|dependencies= | |dependencies= | ||
|notes=The project should include a follow-up time frame to accommodate | |notes=The project should include a follow-up time frame to accommodate any changes identified after Firefox for Desktop has migrated to the new API, as well as handle requests to facilitate other Mozilla products and add-ons to migrate to the new API. | ||
any changes identified after Firefox for Desktop has migrated to | |||
the new API, as well as handle requests to facilitate other Mozilla | |||
products and add-ons to migrate to the new API. | |||
}} | }} | ||
---- | ---- | ||
Revision as of 12:01, 2 July 2013
Performance
Mozilla's performance program focuses on improvements to the Gecko platform and the Firefox Desktop, Firefox for Android, and Firefox OS products.
Projects
Active
Incremental Cycle Collection (ICC)
| Product impact | [DESKTOP] [MOBILE] [B2G] |
|---|---|
| Goal | Implement incremental cycle collection to reduce1 cycle collector pauses in the Firefox UI.
1Reduction in cycle collector pauses will be measured with the CYCLE_COLLECTOR_FULL Telemetry probe. The degree of reduction that can be achieved is currently unclear. |
| Duration | TBD |
| Team | Andrew McCreight (lead) |
| Progress reports | TeamStatus: Andrew McCreight |
| Work | bug 850065 |
| Dependencies | |
| Notes |
Keep JS-accessible APIs from blocking the main thread
| Product impact | [DESKTOP] [MOBILE] [B2G] |
|---|---|
| Goal | Refactor existing and provide new JS APIs to either migrate services, components, and add-ons off the main thread or at least prevent them from blocking the main thread. |
| Duration | TBD |
| Team | David Rajchenbach-Teller (lead), Paolo Amadini |
| Progress reports | TeamStatus: David Rajchenbach-Teller |
| Work | Bugzilla query |
| Dependencies | |
| Notes | This project focuses on JS-accessible APIs in the context of Web Workers. |
Profiler Backend for Mobile
| Product impact | [MOBILE] [B2G] |
|---|---|
| Goal | Accurate1, crash-free, deadlock-free, low overhead2 stack unwinding for the SPS profiler for Firefox for Android and Firefox OS.
[1]The correct sequence of code return addresses on the stack, ideally without the unwind terminating before it gets back to main(). |
| Duration | TBD |
| Team | Julian Seward (lead), Benoit Girard, Mike Hommey |
| Progress reports | Julian Seward's blog, TeamStatus: Julian Seward, Benoit Girard, Mike Hommey |
| Work | bug 863453 |
| Dependencies | |
| Notes | May impact desktop Linux as well. |
Reducing time to first paint - Phase 1
| Product impact | [DESKTOP] |
|---|---|
| Goal | A 10% reduction1 in time between XRE_Main and first paint2 during cold starts3 on Windows 7 with no extensions installed4, on reference slow hardware5, 30 seconds after an OS reboot.
[1]Currently, after an OS restart, XRE_Main to firstPaint takes about 4.2 seconds on the reference hardware. A 10% reduction will be ~400ms. |
| Duration | TBD |
| Team | Vladan Djeric (lead) |
| Progress reports | Vladan Djeric's blog, TeamStatus: Vladan Djeric |
| Work | bug 810156 |
| Dependencies | Replace Add-on Manager SQLITE with JSON file project |
| Notes | Will measure with about:telemetry on reference hardware as aggregate Telemetry includes both warm and cold starts and a variety of hardware confirgurations. |
Replace Add-on Manager SQLITE with JSON file
| Product impact | [DESKTOP] [MOBILE] |
|---|---|
| Goal | Goal: Reduce Add-on Manager impact on start-up time1 and runtime pauses2 by removing SQLITE database from XPI Provider and Add-on Repository and replacing with JSON3.
1Start-up time reduction by reducing the amount of I/O required before first paint. |
| Duration | 6 weeks (approx week of May 27, 2013) |
| Team | Irving Reid (lead), Felipe Gomes |
| Progress reports | Irving Reid's blog, TeamStatus: Irving Reid, Felipe Gomes |
| Work | bug 853388, bug 853389 |
| Dependencies | |
| Notes |
Smooth Tab Animation
| Product impact | [DESKTOP] |
|---|---|
| Goal | Reasonably1 smooth tabstrip animation on modern low-end AMD/Intel CPUs. The specific focus will be on use cases 1-8 defined below.
1The last 70% of the animation is not lower than 50fps. |
| Duration | TBD |
| Team | Avi Halachmi (lead), Tim Taubert |
| Progress reports | Avi Halachmi's blog, TeamStatus: Avi Halachmi |
| Work | bug 815354 |
| Dependencies | OMTC |
| Notes |
Network Cache Rewrite
| Product impact | [DESKTOP] [MOBILE] [B2G] |
|---|---|
| Goal | A cache that causes no main thread I/O jank (directly or indirectly via locks)1, and that avoids losing the entire cache during crashes or unclean shutdown.2 [1]Currently the cache causes jank (sometimes in excess of 1 second) via main thread waiting while cache thread holds lock and does I/O. |
| Duration | Goal is to have new code in production by end of Q4 2013 |
| Team | Honza Bambas (lead), Michal Novotny, Jason Duell (manager) |
| Progress reports | |
| Work | bug 877301 |
| Dependencies | |
| Notes | Cache rewrite project wiki page |
Downloads API Rewrite
| Product impact | [DESKTOP] |
|---|---|
| Goal | To improve responsiveness when downloads are started, by removing the main-thread I/O caused by access to "downloads.sqlite". The concrete goal is to ensure that SQL statements involving moz_downloads no longer appear in the "slow SQL" Telemetry dashboard. |
| Duration | Late July / early August for reaching the initial goal in Nightly.
Probably another month or two (with lower bandwidth) for follow-ups. |
| Team | Paolo Amadini (lead), Raymond Lee, Felipe Gomes |
| Progress reports | firefox-dev mailing list, weekly updates tool. |
| Work | bug 825588 |
| Dependencies | |
| Notes | The project should include a follow-up time frame to accommodate any changes identified after Firefox for Desktop has migrated to the new API, as well as handle requests to facilitate other Mozilla products and add-ons to migrate to the new API. |
On Hold
Shutdown
| Product impact | [DESKTOP] |
|---|---|
| Goal | Ensure 95% of Firefox desktop instances shutdown in 3 seconds or less. |
| Duration | TBD |
| Team | Benoit Girard (lead) |
| Progress reports | Benoit Girard's blog, TeamStatus: Benoit Girard |
| Work | bug 819063 |
| Dependencies | |
| Notes |
| Hold reason | Resource availability |
|---|
Proposals
Project proposals should be listed on the perf etherpad.
Archive
Completed/terminated projects are listed in the project archive.
Tools
- Telemetry
- jydoop: Efficient and Testable hadoop map-reduce in Python (Introduction from Benjamin Smedberg)
- SPS Profiler
- Buildbot/Talos
Communication
| Communication Type | Mechanism | Audience |
|---|---|---|
| Announcements | dev-platform list | all |
| Meetings | First Thursday of each month, 1pm PT
|
all |
| Meeting summaries | this wiki | all |
| Micro status | TeamStatus | devs |
| Weekly status | Mozilla Status Board | devs |
Press & Blog Posts
Progress Reports
| 2013 | |
|---|---|
People
list required competencies for people and, once defined, the people working on project. note that not all of these competencies will be required for every project
| Project Champion | |
| Program Management | Lawrence Mandel |
| Product | |
| Engineering | Taras Glek, Vladan Djeric |
References
Related Projects
Archive
Old Projects
- Mobile Startup Shrink
- Startup Performance
- Front-end Performance (i.e., responsiveness)
- Add-on Performance
- Snappy
- Mobile Performance Info
Tools
- Codesighs - a tool which analyzes code and data size.
- Performance:Tools. For measuring performance. Tip o' the propeller-cap to Daniel Roberts (zuperdee@penguinpowered.com) for the pointers.
- Performance:Probes. Project to integrate a system of performance probes into Gecko.
Documentation and Presentations
- Code Footprint Performance:Footprint_Reduction_Techniques explains common bad patterns and how to correct them.
- Performance:Profiling_JuJu. Things you should know about doing profiling. Tips and tricks for some of the tools, and lots of other Good Things To Know.
- Profiling and leak analysis on the Mac.
- Performance:Footprint_Tools. Presentation on footprint tools
- Performance:Startup slides Presentation on general performance tools
- Performance:Leak_Tools. Presentation on memory leaks detection tools
- Mac Performance Tools Presentation on performance tools that work on Mac