Mobile/StartupOptimization: Difference between revisions

(New page: == Issues == == Goals == == Task list == === Bugs === === Features ===)
 
 
(11 intermediate revisions by 4 users not shown)
Line 1: Line 1:
== Issues ==
== 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 ==
== Goals ==
Initial goal: Reduce startup time as perceived by the user to less than 3s.


== Task list ==
== Task list ==
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
** Filed bug 412796 [https://bugzilla.mozilla.org/show_bug.cgi?id=412796]
* Optimize mobile chrome
** UI design
** [[Mobile/XULOptimization|XUL Optimizations]]
* 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 [https://bugzilla.mozilla.org/show_bug.cgi?id=406810]
* 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 [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 ===
=== Features ===