Performance: Difference between revisions
| Line 77: | Line 77: | ||
---- | ---- | ||
====<span style="color: green">Replace | ====<span style="color: green">Replace Add-on Manager SQLITE with JSON file</span>==== | ||
{{PerfProject | {{PerfProject | ||
|impact={{desktop}} {{mobile}} | |impact={{desktop}} {{mobile}} | ||
|team=Irving Reid (lead), Felipe Gomes | |team=Irving Reid (lead), Felipe Gomes | ||
|duration=6 weeks (approx week of May 27, 2013) | |duration=6 weeks (approx week of May 27, 2013) | ||
|goal=Goal: Reduce | |goal=Goal: Reduce Add-on Manager impact on start-up time<sup>1</sup> and runtime pauses<sup>2</sup> by removing SQLITE database from XPI Provider and Add-on Repository and replacing with JSON<sup>3</sup>. | ||
<sup>1</sup><span style="font-size: 80%;">Start-up time reduction by reducing the amount of I/O required before first paint.</span><br/> | <sup>1</sup><span style="font-size: 80%;">Start-up time reduction by reducing the amount of I/O required before first paint.</span><br/> | ||
<sup>2</sup><span style="font-size: 80%;">Runtime pause reduction by reducing I/O required during | <sup>2</sup><span style="font-size: 80%;">Runtime pause reduction by reducing I/O required during add-on up-to-date checks and updates, and making sure as much as possible is off main thread.</span><br/> | ||
<sup>3</sup><span style="font-size: 80%;">New implementation will do no blocking I/O except minimal loading of required data during start-up.</sup> | <sup>3</sup><span style="font-size: 80%;">New implementation will do no blocking I/O except minimal loading of required data during start-up.</sup> | ||
|reports=[http://www.controlledflight.ca/category/mozilla Irving Reid's blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/irving Irving Reid], [http://teamstat.us/#show/irc.mozilla.org/perf/felipe Felipe Gomes] | |reports=[http://www.controlledflight.ca/category/mozilla Irving Reid's blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/irving Irving Reid], [http://teamstat.us/#show/irc.mozilla.org/perf/felipe Felipe Gomes] | ||
Revision as of 14:47, 26 April 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
"Cold" page load benchmark
| Product impact | [DESKTOP] |
|---|---|
| Goal | Create a reliable1 Talos benchmark for 'cold' page load times.
1Reliable in this case refers to minimizing variability in the data between runs on the benchmark system. |
| Duration | TBD |
| Team | Nathan Froyd (lead), Avi Halachmi |
| Progress reports | TeamStatus: Nathan Froyd, Avi Halachmi |
| Work | |
| Dependencies | |
| Notes | This project will start by exploring viability of such a benchmark. If the benchmark turns out to be infeasible, we will document the results and move on to another project. |
Incremental Cycle Collection (CC)
| 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 |
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 | |
| Duration | TBD |
| Team | Avi Halachmi (lead), Tim Taubert |
| Progress reports | Avi Halachmi's blog, TeamStatus: Avi Halachmi |
| Work | bug 815354 |
| Dependencies | OMTC |
| Notes |
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
- Font chromehangs: daggett???
- Non-e10s Plugin Hangs:
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