Performance/Snappy/2011-11-18
From MozillaWiki
< Performance | Snappy
Contents
Responsiveness program
Need to set a simple goal
- target keyboard/mouse responsiveness
- target animation framerate
Measuring:
- Need tools for measuring slowness: gfx FPS gated on UI operations
- automated, continuous integration
- on-demand
- web devs, add-on devs, fx devs, platform devs?
- should rank ui operations by importance, ie typing, mouse clicks
- the following use-cases should be instrumented with telemetry: http://j.mp/rPGyFb
- Use benoit's profiler to prioritize stacks that need fixing
- How to distribute work among various teams?
- telemetry
- tools
Automate:
- Use telemetry and statistics to measure progress/regression. have a list of histograms that people can check to see progress
- Have metrics do/automate trend analysis on telemetry data
- Once we have data we can try to model our performance in the field
Momentum:
- Weekly blog posts like memshrink
- Arewefastyet.com from telemetry histogram
https://etherpad.mozilla.org/responsiveness-profiling
Process:
- lots of triage
- copy memshrink queries
- visible unresponsiveness metabug: bug 698500
- sync storage main-thread-io metabug: bug 699820
- cycle collector responsiveness metabug: bug 698919
Notes mtg:
- need gfx test harness for fps: jeff taking, after thxgiving week
- dietrich coordinating telemetry for front-end actions
- goals
- should focus on what users are complaining about
- how to find out what's biting users? a user survey?
- Lawrence: talk to support group?
- probes are answers about specific areas, can't just probe the whole project
- measure events before non-responsive code (ted's event loop lag logger)
- doesn't cover painting
- don't optimize for lag when browser is idle
- taras: want a user-visible goal
- jst: already code in place to tell when blocking user events?
- then capture stack trace
- measing against gmail - not static. could save a snapshot for benchmark.
- need to find person to handle the test framework and getting infrastructure bits going.
- get basic locally running harness so can attack directly?
- p1s
- slow-sql telemetry
- domstorage
- trade off reliability for perf
- dying api (no longer promoting it)
- mandelin: more lab-style way for devs to figure out when page X causes problem due to code Y?
- something between telemetry and automation
- quick feedback loo
- dump telemetry or other pause-related data into a buffer
- sql telemetry
- distinguish main-thread vs off-thread queries
- could be useful to main thread events that take time
- are hangs part of mission here?
- out of process plugin hangs?
- startup part of this?
- android responsiveness?
- hang detector: bug 429592
Actions:
- Jeff writing gfx harness for fps
- Dietrich coordinating front-end telemetry: find owners for new tab, close tab
- Lawrence talking to support group about what users are complaining about
- Test infrastructure will be pushed on by XXX
- Nfryod looking at domwstorage, shouldn't wait on leveldb. make it less reliable, for perf
- Andrew filing bug for lab-style responsiveness log: bug 703800
- Lawrence is going to reschedule the meeting to include non-US participants