Mobile/StartupOptimization

From MozillaWiki
Jump to: navigation, search

Issues

Trunk Firefox takes ~15s to show the main window on the N800. With a simpler chrome it reduces to about 8s. The Maemo browser on the same hardware takes ~3s, and Safari (iPod Touch) takes less than a second.

Goals

Initial goal: Reduce startup time as perceived by the user to less than 3s.

Task list

Here are some potential optimizations:

  • Startup bugs

[1] [2]

  • Improve fastload performance
    • Filed bug 412796 [3]
  • Optimize mobile chrome
  • Function re-ordering
    • Streamline memory access by placing all code & data needed for start-up in contiguous sections at the start of the binary.
  • Optimize memory allocation
    • Significant time during startup is in memory allocations. Need link to ongoing work.
  • Optimize startup hotspots
    • Bug 406810 [4]
  • Preload Mozilla libraries
    • Preload all libraries during startup; launching Firefox only loads the XUL application.
  • Preload Mozilla application
    • Launch Mozilla during device startup and keep in background (no visible window). Launching Firefox will only open a new window.
  • Identify & disable unnecessary work during startup (for mobile)
    • Bug 421561 [5]
  • removing comments from all evaluated source files (js, css, xul). Less to read in.
    • Bug 463066 [6]
  • look at what system libraries are being opened on start. strace shows we looking around for system version of nspr, nss, ect? Maybe we can help the dso loader.
    • Bug needed.
  • look at what locales are being loaded in. strace shows we are loading in locales that are not needed at startup.
    • Bug needed
  • merge all XPT files.
    • Bug 469873 [7]
  • Can JS files be precomputed/precompiled?
    • bug needed.
  • Reduce chrome files. For a XUL runner app, we do not pageloader for example. There are others. This should be included in make package.
    • bug needed.
  • Reduce js files. there are probaby some js completes that we do not need. (default command line handling, for example).
    • Bug 468607 [8]
  • Is sqllite doing a bunch of unneeded F_SETLK64s (fcntl64)? Maybe we do not have to be so overly protective of other writers?
    • bug needed
  • Does XR need the hiddenWindow? starting this takes times.
    • bug needed


Bugs