Features/MobilePerformance

From MozillaWiki
Jump to: navigation, search

Firefox Mobile: Mach GoGoGo!

Be Faster Than Native Browsers

Top Goals

  • Improve startup time
  • Understand memory usage
  • Reduce memory usage in a fanatical way
  • Improve Perceived Performance
  • Fix Panning Performance


Mobile is Everywhere

  • A laptop is mobile but users run firefox "desktop"
  • A phone and a tablet are two entirely different instruments so are we creating three firefoxes, two firefoxes, or one firefox?
  • Mobile and desktop are converging. This means the people need to converge, too. We need to identify the "strata" efforts that are happening already and create visibility and summary and as far as product is concerned, they should be on autopilot so Product can focus on innovation
  • Metrics and numbers are good to get people to fix bugs but they are not enough incentive to create the much needed cultural shift of collaboration and integration. We need to depict to everyone what it is that we are talking about when we say Firefox is slower than native browsers and we need to do so in a public forum. This is not about shame. This is about celebrating the world of possibility.


Front End

Perception Design: Identify ux improvements we can make that will elevate perceived performance while we work to make Firefox faster on Android

  • Identify what these changes are and what they cost
  • Architect these changes so they are scalable and fluid for users as we make progress with under the hood performance improvements. They shouldn't break as Startup Shrink and MemShrink continue to make traction
  • Non-XUL Front End Architecture? We have measurements measurements suggesting that XUL doubles are mem usage. How can we prove/disprove that? Is this fixable? 



Platform & Architecture

Do we want to move to a single process, multithreaded architecture? 

P1

  • UI responsiveness:slow, no progress bar
  • Tap, Pan, Zoom:Checkerboarding, kinetic too jerky, poor motion profile compared to stock, font zooming delayed and ugly compared to stock
  • Memory Usage:We don't really know but we think it is bad. Difficult to understand in Android, we need to set goals. Use 85% less memory than Chrome by March 2012, 50% by December, 25% by October (Memshrink Project?)
  • Footprint: Install footprint is currently 14MB. Keep measuring this as code changes and features are added.
  • Startup Speed: 5s stock is 1.5s Part perception, part architecture (StartupShrink?). Measure both Cold and Warm startup and compare

P2

  • Page Load: Depends upon the website (and probably the kind of phone/tablet people are running).

P3

JavasScript: We are 2x faster than stock


Making Life Better for Users Today

  • There are some phones that will rock with Firefox and some that will not even run Firefox. We can do something about this today. Do we publish this information?
  • ARMv6 phones are not supported and we need to map that to something purchasers of phones and users of Firefox can translate into behavior.
  • Stabilize: CrashKill is happening, will some of the crashes fix performance for free? Keep up on top bugs such as 475084

Schedule

Raising the Mainsail: take time to do it right to avoid snags but don't squander the wind We need to be in an entirely different state of affairs by March 2012. That is 6 months from now.

  • Connect: We should take September to connect, aggregate, investigate, understand, and set a course. People are working on things today and we need to seek to understand what the intended results are and how they map to the larger strategy.
  • Pounce: Launch an acctionable project plan on or before October 3
  • Create plan for : October-March


Actionable Items

  • Tara's ID'd these items as being wasted on startup, are they being tracked in Bugzilla?
  1. 0.5s XUL reflows
  2. 0.5s sqlite IO (150-1000ms, avg 500)
  3. ~0.5s linker badness (needs linker improvements)
  4. unknown needlessly parsing XML, CSS, etc.
  • We need tools to better understand Memory Usage on Android- teach people how to profile on Android
  • We need someone to audit desktop's tools to see if they work for Fennec and if not, work on achieving parity (and innovating of course)
  • Connect with Boot to Gecko and Pancake teams to understand on orwhat is happening today and evangelize the super set of performance goals
  • Plan of attack for all-hands; golden opportunity to spread the message
  • Project plan & schedule

Resources

IRC Channels?

Reporting

Where are performance metrics results reported? 

Are We Fast Yet?

Current undergoing projects happening in the interest of improving performance are:

Fennec Performance Page

MemShrink

StartupShrink

B2G

Pancake

GoFaster?

===

Ionmonkey? 


Firestarters/Thought Leaders

Thomas Arend

David Mandelin

Mark Finkle


Domain Experts

Mark Finkle: Mobile Front-End Lead

Stuart Parmenter: Pancake Lead (this is Firefox home app?)

Clint Talbert: Tools & Automation Lead

Taras Gleck: Performance Manager

Ux: Alex Faaborg

Who else?