|
|
| (115 intermediate revisions by 22 users not shown) |
| Line 1: |
Line 1: |
| =Performance=
| | The Firefox performance team focuses on improvements to the Gecko platform and Firefox across desktop and mobile. |
| Mozilla's performance program focuses on improvements to the Gecko platform and the Firefox Desktop and Firefox for Android products.
| | If you have performance-related questions, ask us in [https://chat.mozilla.org/#/room/#perf-help:mozilla.org #perf-help:mozilla.org on Matrix] and #perf-help on Slack. For general discussion, find us at [https://chat.mozilla.org/#/room/#perf:mozilla.org #perf:mozilla.org on Matrix]. |
|
| |
|
| ==Projects==
| | '''The team:''' |
| ===Active===
| | * Performance Engineering |
| ====<span style="color: green">Incremental Cycle Collection (CC)</span>====
| | * [[Performance/Tools|Performance Tools]] |
| {| border="0" width="100%" align="left"
| |
| |-
| |
| ! width="120px" | Product impact
| |
| |{{desktop}} {{mobile}} {{b2g}}
| |
| |-
| |
| ! Team
| |
| | Andrew McCreight (lead)
| |
| |-
| |
| ! Duration
| |
| | TBD
| |
| |-
| |
| ! style="vertical-align: top;" |Goal
| |
| | Implement incremental cycle collection to reduce<sup>1</sup> cycle collector pauses in the Firefox UI.
| |
| <sup>1</sup><span style="font-size: 80%;">Reduction in cycle collector pauses will be measured with the [http://mzl.la/XLsAoB CYCLE_COLLECTOR_FULL Telemetry probe]. The degree of reduction that can be achieved is currently unclear.</span>
| |
| |-
| |
| ! Progress reports
| |
| | TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/mccr8 Andrew McCreight]
| |
| |-
| |
| ! Work
| |
| | {{bug|850065}}
| |
| |-
| |
| |}
| |
| ----
| |
|
| |
|
| ====<span style="color: green">Profiler Backend for Mobile</span>====
| | Here are some related pages you may be interested in: |
| {| border="0" width="100%" align="left"
| | * [[Performance/Triage]] |
| |-
| | * [[Performance/Fenix]] |
| ! width="120px" | Product impact
| |
| |{{mobile}} {{b2g}}
| |
| |-
| |
| ! Team
| |
| | Julian Seward (lead), Benoit Girard, Mike Hommey
| |
| |-
| |
| ! Duration
| |
| | TBD
| |
| |-
| |
| ! style="vertical-align: top;" |Goal
| |
| | Accurate<sup>1</sup>, crash-free, deadlock-free, low overhead<sup>2</sup> stack unwinding for the SPS profiler for Firefox for Android and Firefox OS.
| |
| <sup>[1]</sup><span style="font-size: 80%;">The correct sequence of code return addresses on the stack, ideally without the unwind terminating before it gets back to main().</span><br/>
| |
| <sup>[2]</sup><span style="font-size: 80%;">Average unwind cost of 500 microseconds for a 30-frame backtrace on one core of a 1 GHz Cortex A9</span
| |
| |-
| |
| ! Progress reports
| |
| | [https://blog.mozilla.org/jseward Julian Seward's blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/sewardj Julian Seward], [http://teamstat.us/#show/irc.mozilla.org/perf/BenWa Benoit Girard], [http://teamstat.us/#show/irc.mozilla.org/perf/glandium Mike Hommey]
| |
| |-
| |
| ! Work
| |
| | {{bug|863453}}
| |
| |-
| |
| ! Dependencies
| |
| |
| |
| |-
| |
| ! Notes
| |
| | May impact desktop Linux as well.
| |
| |-
| |
| |}
| |
| ----
| |
|
| |
|
| *Tab Animation: Avi, Tim
| | ==Measuring & improving Firefox performance== |
| *Responsiveness Gecko: Vlad
| |
| *Startup: Vlad, Aaron
| |
| *Make workers good: David Teller, Paolo
| |
| *Addons: Irving
| |
| *Talos: Nathan, Avi
| |
|
| |
|
| ===On Hold=== | | ===Write-ups=== |
| ====<span style="color: green">Shutdown</span>====
| | * [https://firefox-source-docs.mozilla.org/performance/ Firefox performance knowledge-base] |
| {| border="0" width="100%" align="left"
| | * [[Performance/Evaluating_Performance_of_New_Features|How to evaluate the performance of your new feature]] |
| |-
| | * Information on Talos automatic performance tests: |
| ! width="120px" | Product impact
| | ** [[TestEngineering/Performance/Talos/RegressionBugsHandling|What to do when your check-in causes a Talos regression]] |
| |{{desktop}}
| | ** [[TestEngineering/Performance/Sheriffing|Additional reading: How the Automation Team does performance sheriffing]] |
| |-
| | * [[Performance/Avoid_SQLite_In_Your_Next_Firefox_Feature|Avoid SQLite in your next Firefox feature]] |
| ! Team
| |
| | Benoit Girard (lead)
| |
| |-
| |
| ! Duration
| |
| | TBD
| |
| |-
| |
| ! style="vertical-align: top;" |Goal
| |
| | Ensure 95% of Firefox desktop instances shutdown in 3 seconds or less.
| |
| |-
| |
| ! Progress reports
| |
| | [http://benoitgirard.wordpress.com Benoit Girard's blog], TeamStatus: [http://teamstat.us/#show/irc.mozilla.org/perf/BenWa Benoit Girard]
| |
| |-
| |
| ! Work
| |
| | {{bug|819063}}
| |
| |- style="color:red"
| |
| ! Hold reason
| |
| | Resource availability
| |
| |-
| |
| |}
| |
| ----
| |
|
| |
|
| ===Proposals=== | | ===Tools=== |
| *Font chromehangs: daggett???
| |
| *Non-e10s Plugin Hangs:
| |
|
| |
|
| ==Tools==
| | * [[Telemetry|Telemetry]]: |
| *[[Telemetry|Telemetry]] | | ** [http://telemetry.mozilla.org/ Telemetry dashboard] |
| * [https://github.com/mozilla/jydoop jydoop: Efficient and Testable hadoop map-reduce in Python] ([http://benjamin.smedbergs.us/blog/2013-04-09/introducing-jydoop-fast-and-sane-map-reduce/ Introduction from Benjamin Smedberg]) | | ** [https://firefox-source-docs.mozilla.org/toolkit/components/telemetry/telemetry/start/adding-a-new-probe.html Adding a new Telemetry probe] |
| * [https://developer.mozilla.org/en-US/docs/Performance/Profiling_with_the_Built-in_Profiler SPS Profiler] | | * [https://profiler.firefox.com/ Firefox Profiler] |
| | ** [https://firefox-source-docs.mozilla.org/performance/reporting_a_performance_problem.html Reporting a Performance problem] |
| * [[Buildbot/Talos]] | | * [[Buildbot/Talos]] |
| | * [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/GTest#MozGTestBench MozGTestBench] |
| | ** Write low level microbenchmarks using [https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/GTest#MozGTestBench GTest] |
| | * [[Using_XPerf| xperf]] |
| | ** [[Tracing VirtualAlloc With Xperf]] |
| | * [https://github.com/chutten/statuser Statuser]: Restartless Firefox extension for as-it-happens hang monitoring. |
|
| |
|
| ==Communication== | | ===Meetings=== |
| {| class="wikitable fullwidth-table"
| | ====Joy of Profiling==== |
| ! Communication Type !! Mechanism !! Audience
| | Do you have a profile that you don't understand? Are you having problem analyzing a profile? Do you want more eyes on this little profile of yours? |
| |-
| |
| | Announcements || [https://lists.mozilla.org/listinfo/dev-platform dev-platform] list || all
| |
| |-
| |
| | Meetings || First Thursday of each month, 1pm PT
| |
| {{conf|99355}}
| |
| * Vidyo: Performance
| |
| * IRC: [irc://irc.mozilla.org/perf #perf]
| |
| * Agenda:
| |
| || all
| |
| |-
| |
| | Meeting summaries || [[Performance | this wiki]] || all
| |
| |-
| |
| | Micro status || [http://teamstat.us/#browse/irc.mozilla.org/perf TeamStatus] || devs
| |
| |-
| |
| | Weekly status || [http://benjamin.smedbergs.us/weekly-updates.fcgi/ Mozilla Status Board] || devs
| |
| |}
| |
| | |
| ===Press & Blog Posts=== | |
| | |
|
| |
|
| ===Minutes and Progress Reports ===
| | You have 2 options! |
| {| class="wikitable collapsible" style="width: 100%"
| |
| ! style="background-color: rgb(221, 221, 221);" colspan="2" | 2013 | |
| |-
| |
| |
| |
| * minutes go here
| |
| |}
| |
|
| |
|
| ==People==
| | Option 1: join us on [https://matrix.to/#/#joy-of-profiling:mozilla.org the Joy of Profiling channel on Element]. |
| 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
| |
| {| class="wikitable fullwidth-table"
| |
| | Project Champion ||
| |
| |-
| |
| | Program Management || Lawrence Mandel
| |
| |-
| |
| | Product ||
| |
| |-
| |
| | Engineering || Taras Glek, Vladan Djeric
| |
| |-
| |
| |}
| |
|
| |
|
| ==References==
| | Option 2: join us in the Joy of Profiling meeting! |
| | |
| ===Related Projects===
| |
| * [[Performance/MemShrink|MemShrink]]
| |
| | |
| ==Archive==
| |
| ===Old Projects===
| |
| * [[Firefox/Projects/Mobile_Startup_Shrink|Mobile Startup Shrink]]
| |
| * [[Firefox/Projects/Startup_Time_Improvements|Startup Performance]]
| |
| * [[Firefox:FrontEndPerformance|Front-end Performance]] (i.e., responsiveness)
| |
| * [[Performance/Addons|Add-on Performance]]
| |
| * [[Performance/Snappy|Snappy]]
| |
| * [[Mobile/Performance|Mobile Performance Info]]
| |
| | |
| ===Tools===
| |
| * [[Codesighs]] - a tool which analyzes code and data size.
| |
| * [[Performance:Tools]]. For measuring performance. Tip o' the propeller-cap to [mailto:zuperdee@penguinpowered.com Daniel Roberts] (zuperdee@penguinpowered.com) for the pointers.
| |
| * [[Performance:Probes]]. Project to integrate a system of performance probes into Gecko.
| |
|
| |
|
| ===Documentation and Presentations===
| | * When: |
| * Code Footprint [[Performance:Footprint_Reduction_Techniques]] explains common bad patterns and how to correct them. | | ** Every first and third monday at 17:00 CET, 11am EST, 8am PST. |
| * [[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. | | ** <del>Every second and fourth monday at 20:00 CET, 2pm EST, 11am PST.</del> Canceled for now, please contact us on the channel if you want to chat! |
| * [http://www.mozilla.org/performance/mac-performance.html Profiling and leak analysis] on the Mac. | | * Where: [https://mozilla.zoom.us/j/98769155293 Zoom ID 987 6915 5293] |
| * [[Performance:Footprint_Tools]]. Presentation on footprint tools | |
| * [[Performance:Startup]] [http://www.mozilla.org/performance/perf-intro/slide1.xml slides] Presentation on general performance tools
| |
| * [[Performance:Leak_Tools]]. Presentation on memory leaks detection tools
| |
| * [http://www.mozilla.org/performance/mac-performance.html Mac Performance Tools] Presentation on performance tools that work on Mac
| |