Firefox/Projects/Startup Time Improvements: Difference between revisions

 
(23 intermediate revisions by 8 users not shown)
Line 4: Line 4:
'''Description:''' Improve startup time of Firefox and Fennec on all operating systems and platforms, including mobile devices.
'''Description:''' Improve startup time of Firefox and Fennec on all operating systems and platforms, including mobile devices.


'''Project lead:''' Dietrich Ayala <br/>
'''Project lead:''' <br/>
'''Project members:''' Ryan Flint, Drew Willcoxon, David Dahl, Vlad Vukićević, Taras Glek, Joel Reymont, Ben Hsieh, Rob Strong, Zack Weinberg
'''Project members:''' Taras Glek, Ben Hsieh, Steve Fink, Michael Wu, Shawn Wilsher


'''Bugs:''' [http://tinyurl.com/ygbnzmd Open] | [http://tinyurl.com/yjp8d6w Fixed] | [http://bit.ly/5t9fA9 Fixed in 3.6]
'''Bugs:''' [http://tinyurl.com/ygbnzmd Open] | [http://tinyurl.com/yjp8d6w Fixed] | [http://bit.ly/5t9fA9 Fixed in 3.6]


'''Results''': [http://people.mozilla.org/~dietrich/snapshot/ Performance Snapshot] (snapshot numbers for last 7 days, and version comparisons)
'''Results''': [http://graphs.mozilla.org/dashboard/snapshot/ Performance Snapshot] (snapshot numbers for last 7 days, and version comparisons)


'''Graphs:''' [http://bit.ly/5fjmP9 Windows XP] | [http://bit.ly/8FjKvj Windows Vista] | [http://bit.ly/7aHx3r Mac Leopard] | [http://bit.ly/8wUHGs Linux]
'''Graphs:''' [http://bit.ly/5fjmP9 Windows XP] | [http://bit.ly/8FjKvj Windows Vista] | [http://bit.ly/7aHx3r Mac Leopard] | [http://bit.ly/8wUHGs Linux]
Line 17: Line 17:
=Active Projects=
=Active Projects=
<onlyinclude>
<onlyinclude>
{|border="1" cellspacing="0" cellpadding="2"
!Estimated win
!Bug #
!Summary
!Owner
!Status
!Notes
|-
|~10%
|[[Firefox/Projects/2010Q3_Dirty_Startup_Reduction|"Dirty Profile" Startup Reduction]]
|Constant startup relative to profile size
|Shawn Wilsher
|
|
|-
|significant
|{{bug|558200}}
|Extension profiler platform api
|Steve Fink
|
| There is an easy way to provide feedback to extension developers to help them figure out why their extension is misbehaving. We need to implement that ASAP, so typical firefox installs(with lots of extensions) can be fast
|}
</onlyinclude>
=Help Wanted/Onhold=
{|border="1" cellspacing="0" cellpadding="2"
{|border="1" cellspacing="0" cellpadding="2"
!Estimated win
!Estimated win
Line 26: Line 51:
|-
|-
|~8%
|~8%
|{{bug|525013}}
|{{bug|561842}}
|Static build configuration
|Fold libraries into libxul
|Ted Mielczarek
|Ted Mielczarek
|at risk
|
|Ted's got new patches up, not ready for review yet. Plan is to land on m-c defaulting off, iterate from there.
|proof of concept done
|-
|-
|~10%
|up to 40%
|{{bug|531406}}
|{{bug|531406}}
|Optimize code locality in binaries
|Optimize code locality in binaries. Working on enabling pgo atm.
|Taras Glek
|Taras Glek
|in progress
|
|See [http://blog.mozilla.com/tglek/2010/02/19/teaching-ld-to-optimize-binaries-for-startup/ blog post] for more details. Taras and Ehsan working on Windows locality improvements ({{bug|553721}}).
|Linux almost done, need to figure out integration. Windows proof of concept needs work.
See [http://blog.mozilla.com/tglek/2010/02/19/teaching-ld-to-optimize-binaries-for-startup/ blog post] for more details. Taras and Ehsan working on Windows locality improvements ({{bug|553721}}).
|-
|-
|~10%
|~10%
|{{bug|520309}}
|{{bug|512584}}
|Startup cache
|Fast paths for Cc/Ci
|Ben Hsieh
|
|at risk
|
|Needs new patch. Ben might have time soon.
|Confirmed win. Unfortunately this approach touches a lot of sensitive code, might be easier to port js to not use Cc/Ci
|-
|-
|TBD
|TBD
|{{bug|513149}}
|{{bug|513149}} {{bug|553456}}
|Speed up CSS parsing
|Speed up CSS parsing
|Zack Weinberg
|Zack Weinberg
|in progress
|
|deCOM landed ({{bug|523496}}, {{bug|544112}}); other changes in progress, see [https://bug513149.bugzilla.mozilla.org/attachment.cgi?id=424821 chart].
|
|-
| n/a
|{{bug|545191}}
|Investigate Tp/Ts instability
|Zack Weinberg
|in progress
|Waiting for releng to prep a Talos slave box for experiments.
|-
|~10%
|{{bug|512584}}
|Fast paths for Cc/Ci
|Taras Glek
|in progress
|New patch up, need to confirm effect. Blocked on broken graph server and closed tree.
|-
|-
|TBD
|significant
|{{bug|559663}}
|Measuring IOPs
|
|
|DOM flattening and XBL removal
|  
|Asaf Romano
|Our current infrastructure does not measure cold startup effectively, it should.  
|in progress
|TODO list the bugs involved here. See also [https://wiki.mozilla.org/Mobile/XULOptimization Mobile's work in this area].
|-
|up to 25%, Mac only
|{{bug|514083}}
|HFS+ compression on Mac OSX 10.6
|Joel Reymont
|inactive
|
|
|-
|NA
|{{bug|533038}}
|Investigate how to reduce the number of files used for extensions
|Dietrich and others
|In progress
|See wiki here
|-
|-
|TBD
|TBD
|{{bug|550011}}
|{{bug|569629}}
|extension xpt files cause all to be re-read
|Get rid of static initializers
|Dietrich
|In Progress
|
|
|
|These slowdown library loading, cause a lot of pagefaults on gcc platforms.
|}
|}
</onlyinclude>
 
 
Other efforts:
* {{bug|514083}} HFS+ compression on Mac OSX 10.6


'''Measurement & Testing Projects'''
'''Measurement & Testing Projects'''
Line 103: Line 105:


* dirty profile testing
* dirty profile testing
** {{bug|515540}} - dirty+cold startup
** {{bug|527596}} - dirty Tp
** {{bug|527596}} - dirty Tp
** {{bug|FILEME}} - test an all-dirty profile
** {{bug|FILEME}} - test an all-dirty profile
101

edits