Firefox/Projects/Startup Time Improvements: Difference between revisions
Jump to navigation
Jump to search
(→Tasks) |
(→Tasks) |
||
| Line 36: | Line 36: | ||
* Log and mine filesystem operations during startup (Ryan) | * Log and mine filesystem operations during startup (Ryan) | ||
** [http://boomswaggerboom.wordpress.com/2009/06/24/firefox-for-mac-os-x-and-filesystem-related-system-calls/ Josh Aas's post] | ** [http://boomswaggerboom.wordpress.com/2009/06/24/firefox-for-mac-os-x-and-filesystem-related-system-calls/ Josh Aas's post] | ||
** checking out Xperf and others for Windows work | |||
** maybe write a new dtrace script for targeting offenders | ** maybe write a new dtrace script for targeting offenders | ||
*** investigating dtrace timing/FS cache issues on OS X | |||
**** Instruments appears to have the same issues | |||
*** Simple JS file exec script has yielded [https://bugzilla.mozilla.org/buglist.cgi?bug_id=504513 some results] | |||
* Mine bugzilla for existing startup bugs and tag them (Dietrich) | * Mine bugzilla for existing startup bugs and tag them (Dietrich) | ||
* Hot vs. cold testing | * Hot vs. cold testing | ||
Revision as of 11:11, 18 July 2009
Overview
Sprint lead: Dietrich
Sprinters: Ryan, Drew, David
- Description
- Investigate areas for Ts wins, find & fix issues that help Fennec and WinCE
Goals / Use Cases
- The core goal of this sprint is to achieve visibility into the performance-related problem areas during browser startup, and to use that visibility to create actionable bugs, creating a clear development path to move forward on.
- The secondary goal is to fix bugs in which a resolution path is already clear, and that would provide a human-noticeable win in Fennec or WinCe.
- Non Goals
- Fix all the identified areas. Should ensure that the relevant people are aware of bugs filed, and work to get the bugs with potentially big wins prioritized.
Plan
- Create a baseline profile for testing
- Create and document measurement tools and strategies
- Identify code paths that take the most time at startup
- File bugs for problems found to be actionable
Tasks
- Define the test environment
- Create a baseline profile to measure startup against (Dietrich)
- Prefs, platform-specific issues
- Create an easily accessible timeline of the startup path (David)
- STATUS (2009-07-17): Compiling, but not linking. Still figuring out how to make sure the PR_LOG module is NS_EXPORTED correctly. We are trying to move from fprintf to PR_LOG for all output
- Split the patch up into 3 patches for easier review: CPP, JS and Instrumentation
- Mine the Ts DTrace visualization for opportunities (Drew)
- bug 504858 - Investigate delaying initialization of bookmarks toolbar
- bug 504872 - Investigate further delaying initialization of the search bar
- See DTrace links below also
- Log and mine filesystem operations during startup (Ryan)
- Josh Aas's post
- checking out Xperf and others for Windows work
- maybe write a new dtrace script for targeting offenders
- investigating dtrace timing/FS cache issues on OS X
- Instruments appears to have the same issues
- Simple JS file exec script has yielded some results
- investigating dtrace timing/FS cache issues on OS X
- Mine bugzilla for existing startup bugs and tag them (Dietrich)
- Hot vs. cold testing
- Running with fastload crippled/disabled
References
Meta-bugs and Searches
- bugs with ts whiteboard
- bug 479078 contemporary startup bug
- bug 7251 old school startup bug
Needs investigation
- string pool for jsxpcom: https://bugzilla.mozilla.org/show_bug.cgi?id=279839#c29
Previous work
- Startup Timeline: bug 480735
- Visualize Startup Timeline bug 503605
- Vlad's June posting on startup work
- zpao's treemap visualizations
- Taras' Fennec Startup Work
- bug 459117 "make fennec faster", mostly startup bugs
- startup log
- bug 470116 various timing scripts
Tips, Tools
- Flushing Windows' disk cache
- DTrace
- nuts and bolts how-to for getting dtrace running with mozilla
- project overview of integrating dtrace with mozilla
- dtrace community page, lots of links
- dtrace homepage? not as useful as previous link
- intro from dtrace guidebook, really useful but not mozilla/js-specific
- brief descriptions of the javascript* probes
Fastload:
- why does js_Execute take so long for fastloaded components?
- what is fastload?
- fastload pref docs