canmove, Confirmed users, Bureaucrats and Sysops emeriti
1,334
edits
(→Other areas for investigation: fix wiki formatting) |
(fix wiki formatting of lists) |
||
| Line 7: | Line 7: | ||
Possible areas for improvement: | Possible areas for improvement: | ||
* Put components which aren't typically needed at startup into external dlls, to reduce the amount of code that has to be paged in | |||
* Fastload XBL bindings | |||
* ... | |||
=== Move FF to XULRunner (investigate at least) === | === Move FF to XULRunner (investigate at least) === | ||
| Line 19: | Line 19: | ||
=== Javascript Component Loading === | === Javascript Component Loading === | ||
Even with fastloaded (precompiled) javascript components, we spend a fair amount of startup time deserializing large scripts. Things to do: | Even with fastloaded (precompiled) javascript components, we spend a fair amount of startup time deserializing large scripts. Things to do: | ||
* Refactor large components (nsExtensionManager.js, nsUpdateService.js) to load the minimal amount of code at startup | |||
* Eliminate locking in the JS engine when deserializing scripts, see bug http://bugzilla.mozilla.org/show_bug.cgi?id=312238 | |||
* Use a large pool of memory for allocating strings during deserialization, see https://bugzilla.mozilla.org/show_bug.cgi?id=279839#c11 | |||
=== Function Ordering === | === Function Ordering === | ||
All of the major platforms support having the linker reorder functions in the binary. We can exploit this to move the functions that are needed at startup into a contiguous section at the start of the binary, which should reduce the time spent reading from disk. | All of the major platforms support having the linker reorder functions in the binary. We can exploit this to move the functions that are needed at startup into a contiguous section at the start of the binary, which should reduce the time spent reading from disk. | ||
* Profile the startup process to generate an optimal function ordering | |||
* Integrate the ordering into the build system | |||
=== Improve Fastload system === | === Improve Fastload system === | ||