Mobile/StartupOptimization: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(4 intermediate revisions by 2 users not shown)
Line 10: Line 10:


Here are some potential optimizations:
Here are some potential optimizations:
* Startup bugs
**
[https://bugzilla.mozilla.org/show_bug.cgi?id=121341]
[https://bugzilla.mozilla.org/show_bug.cgi?id=433098]


* Improve fastload performance
* Improve fastload performance
Line 30: Line 35:


* removing comments from all evaluated source files (js, css, xul).  Less to read in.
* removing comments from all evaluated source files (js, css, xul).  Less to read in.
** Bug needed. Possible preexisting bug.
** Bug 463066 [https://bugzilla.mozilla.org/show_bug.cgi?id=463066]


* 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.
* 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.
Line 39: Line 44:


* merge all XPT files.
* merge all XPT files.
** bug needed
** Bug 469873 [https://bugzilla.mozilla.org/show_bug.cgi?id=469873]


* Can JS files be precomputed/precompiled?
* Can JS files be precomputed/precompiled?
Line 48: Line 53:


* Reduce js files. there are probaby some js completes that we do not need. (default command line handling, for example).
* Reduce js files. there are probaby some js completes that we do not need. (default command line handling, for example).
** bug needed
** Bug 468607 [https://bugzilla.mozilla.org/show_bug.cgi?id=468607]


* Is sqllite doing a bunch of unneeded F_SETLK64s  (fcntl64)?  Maybe we do not have to be so overly protective of other writers?
* Is sqllite doing a bunch of unneeded F_SETLK64s  (fcntl64)?  Maybe we do not have to be so overly protective of other writers?

Latest revision as of 20:15, 28 January 2009

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
  • 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)
  • removing comments from all evaluated source files (js, css, xul). Less to read in.
  • 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.
  • 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).
  • 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