Performance/Snappy: Difference between revisions
Jump to navigation
Jump to search
Line 10: | Line 10: | ||
== Minutes and Progress Reports == | == Minutes and Progress Reports == | ||
*[[Performance/Snappy/2011-12-01| Minutes Thu, Dec 1, 2011]] | |||
*[[Performance/Snappy/2011-11-18| Minutes Fri, Nov 18, 2011]] | |||
== Bug Tracking == | == Bug Tracking == |
Revision as of 21:24, 7 December 2011
Snappy is a project that aims to improve Firefox responsiveness. This project is a responsiveness equivalent of Performance/MemShrink.
Meetings
Meetings will happen every Thursday at 11am Pacific time.
- Dial-in: Audio-only conference# 95346
- People with Mozilla phones or softphones please dial x4000 Conf# 95346
- US/Toll-free: +1 800 707 2533, (pin 4000) Conf# 95346
- US/California/Mountain View: +1 650 903 0800, x4000 Conf# 95346
- US/California/San Francisco: +1 415 762 5700, x4000 Conf# 95346
- US/Oregon/Portland: +1 971 544 8000, x4000 Conf# 95346
- CA/British Columbia/Vancouver: +1 778 785 1540, x4000 Conf# 95346
- CA/Ontario/Toronto: +1 416 848 3114, x4000 Conf# 95346
- UK/London: +44 (0)207 855 3000, x4000 Conf# 95346
- FR/Paris: +33 1 84 88 37 37, x4000 Conf# 95346
- Gmail Chat (requires Flash and the Google Talk plugin): paste +1 650 903 0800 into the Gmail Chat box that doesn't look like it accepts phone numbers
- SkypeOut is free if you use the 800 number
- Vidyo: PB&J
- IRC: #perf
- Etherpad: snappy (copied to wiki after the meeting)
Minutes and Progress Reports
Bug Tracking
Bugs tracked by the Snappy project are prioritized by adding one of [Snappy:P1], [Snappy:P2], or [Snappy:P3] to the whiteboard. Use whiteboard [Snappy] tag to nominate bugs.
- Unprioritized Snappy bugs. These are triaged regularly in meetings.
- Snappy:P1 bugs. These are discussed regularly in meetings.
- Snappy:P2 bugs. These are discussed occasionally in meetings. P2 is the default priority.
- Snappy:P3 bugs. These are discussed rarely in meetings.
Some other interesting bugs/lists.
- visible unresponsiveness metabug
- sync storage main-thread-io metabug
- cycle collector responsiveness metabug
Goals
- 50ms responsiveness when typing in a textbox (bug 703668)
- 60fps animations on UI operations, i.e. closing tabs (bug 702509)
- track above via telemetry
more goal thinking responsiveness goals
My (Asa) proposed core measures:
- Startup on par with IE and Chrome
- 50ms responsiveness for all non-animated primary UI interactions (list TBD)
- "Above the fold" uncached page load on par with IE and Chrome
- Back/Forward navigation as fast as Opera.
Current Infrastructure
- Event Tracing: http://mxr.mozilla.org/mozilla-central/source/toolkit/xre/EventTracer.cpp#38
- Fires events at main thread event loop from background thread, measures response time
- Produces output of the form MOZ_EVENT_TRACE sample <timestamp> <duration>
- Being rolled out as part of Talos Tp5 bug 631571, will produce a responsiveness metric for "responsiveness while running Tp5"
- Peptest: bug 674606
- Responsiveness regression test harness
- Allows devs to write tests that perform various actions and tests responsiveness using EventTracer
- Project page contains everything you need to know
- Run 'make peptest' from your object directory to run the tests (see running tests for command line instructions)
- Talos responsiveness tests - for details see bug 631571
Additional Infrastructure
- Have metrics do continuous trend analysis to see if our telemetry stats are getting better over time.
arewesnappyyet.com
- This should use our telemetry data to tell us whether we are meeting our expectations and how how far off we are
- bug 703669 tracks the implementation of this site
Testing
Placeholder section for QA and testing.
- Takeaways from 2011-12-01 Meeting
- Goal of Project:
- Big hangs (~30s) are a problem, but small hangs (~5s) may be a bigger win
- Identify where we hang, why we hang, and plug those holes
- Things on Devs Radar:
- Meta Bugs: visible responsiveness (bug 698500), sync storage (bug 699820), cycle collector (bug 698919)
- Animation hangs are most visible
- Windows, Mac, Linux are all unique -- Windows is P1 for the project
- Firefox Built-in Profiler: late Q1'2012
- Chromhang Bugs: bug 705761, bug 705287, bug 705258, bug 705594, bug 704933, bug 699051
- Small Jank: using refresh driver to measure refresh-rate performance (ie. throbber, progress bar, etc -- Asa has more ideas)
- Measuring Snappiness: Telemetry use cases
- Metrics/Automation: for trend-analysis, finding regressions with Telemetry
- Where does QA fit in?
- P1: Desktop responsiveness competitive testing
- many of these problems need stack traces (something Telemetry cannot do)
- crowd-sourcing use cases where we are less Snappy
- A-B testing with other browsers (versions of Firefox, competitor browsers)
- Ownership of Snappy P1s
- Caching issues should have patches landed in the next week or so