Mobile/StartupOptimization: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
 
(6 intermediate revisions by 3 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 27: Line 32:
** Launch Mozilla during device startup and keep in background (no visible window).  Launching Firefox will only open a new window.
** 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)
* Identify & disable unnecessary work during startup (for mobile)
** DougT can you please add any related bugs here?
** Bug 421561 [https://bugzilla.mozilla.org/show_bug.cgi?id=421561]
 
* removing comments from all evaluated source files (js, css, xul).  Less to read in.
** 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.
** 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 [https://bugzilla.mozilla.org/show_bug.cgi?id=469873]
 
* 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 [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?
** bug needed
 
* Does XR need the hiddenWindow? starting this takes times.
** bug needed
 
 
=== Bugs ===
=== Bugs ===

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