From MozillaWiki
Jump to: navigation, search

Performance Program Review - May 2013

Active Projects

Project Status ETA (weeks)
"Cold" page load benchmark N/A
Incremental Cycle Collection (ICC)
  • prototype works (6ms max pause time on TechCrunch page teardown, from 120ms)
  • need to rebase, investigate odd errors, hook up telemetry+fuzzing
late Q2/early Q3
Keep JS-accessible APIs from blocking the main thread
  • component: Downloads API
  • core API: Promises
  • Dev tools team is working on their promises implementation as well. Should sync up with them.
maybe Q2
Profiler Backend for Mobile
  • done: initial landing of multithread support
  • done: native unwind for nightlies: linux32, linux64 done
  • mostly done: nightly native unwind for arm-android (needs EXIDX support)
  • todo: native unwind for B2G nightlies, eta late May
  • todo: add EXIDX support to Breakpad, eta mid May
  • todo: better testing of the profiler, eta ?
  • todo: more evaluation of quality of unwinds -- where is breakpad failing?
  • Benwa has a plan for the tests
May (not including tests)
Reducing time to first paint - Phase 1
  • Done: Graphing & understanding current state of startup
  • Done: Worked on identifying extensions that cause slow startup with help from dzeber & klahnakoski
  • issue: interpretation of current Telemetry milestones
  • todo: patches to reduce time between ctld and firstpaint (excluding add-on manager)
  • todo: startup work etherpad
1 month for initial batch of patches, likely longer to meet 10% goal
Replace Addon Manager SQLITE with JSON file
  • Done: save/restore of Addon Repository and XPI Provider databases in JSON format
  • Done: upgrade XPI provider DB from SQLITE or RDF to JSON
  • todo: async save/restore of JSON data
  • todo: basic handling of schema changes in JSON XPI database
  • todo: QA planning
  • Investigate landing the work piecemeal instead of all at once.
late May
Smooth Tab Animation
  • Vsync:
    • Implemented two approaches, posted conclusions/observations.
    • vlad decided to land the workweek approach (get info instead of waiting in a thread).
    • TODO: refine the workweek approach and land.
  • Tab smoothness regression test (more detailed than current telemetry).
    • Technically enable measurements of our goals.
    • Implement, decide if as a talos/mochitest/etc.
  • newtab: no recent progress, waits on prioritization
    • Still handling regressions of timer filter (bug 590422).
  • Not enough time / resource spent on new tab. Need to understand what to do with this piece.
* Vsync: land approach one in few days. Reconsider when OMTC comes.
  • Regression test for tab animation cases: Hopefully end of May or earlier.
  • Handle regressions from timer filter patch: as they come (one open ATM).
  • newtab slowdown: waits for prioritization.
  • Identify further bottlenecks: open.

Project Proposals

John Daggett has a meta-bug for his work on eliminating font jank (bug 859558). This is a substantial amount of work that impacts page load.
Download Manager 
This is very noticeable jank for a very common use case. Paolo is making download manager SQL async (bug 825588)
Another very common use case that impacts the top touched element in Firefox: the awesomebar. Places: various bugs being worked on by mak (bug 699844, bug 691507, bug 519514, etc)
Page Load Perf 
Not sure exactly what to do here but we haven't spent much time on page load. This project will be in scope for the network team. We will likely want to define a meaningful page load benchmark in order to track progress.


  • real-life goals:
    • Use evaluations/questioneers/UX-feedback/discussions/etc to define "real" goals instead of synthetic ones (both tasks and thresholds).