Firefox/Projects/Startup Time Improvements/joelr notes: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 4: Line 4:


= Current status =
= Current status =
= Previous statuses =
==== Restarting ====
I'm very comfortable with DTrace but still not comfortable with the Firefox code base. It will take me a while to grok reflow, for example, much less optimize it. I feel that there are startup speedups that can be achieved quicker, with a better return on investment (aka low-hanging fruit).
Yes, reflow is in the hot path during startup but it's not clear if it's a major source of slowness. I would like to know what happens during Firefox startup, in as much detail as possible and DTrace has granted me my wish in the form of a 400Mb+ log file. The file lists all the function calls up to the return from the JS function BrowserStartup, e.g.
<pre>
...
    6200      .      .          -> ImageLoaderMachO::segIsReadOnlyImport(unsigned int) const(0x8FE46820, 0x1, 0xBFFFC1C8)           
    6202      .      .            -> ImageLoaderMachOCompressed::segmentCommandOffsets() const(0x8FE46820, 0x0, 0x0)         
    6203      81      1            <- ImageLoaderMachOCompressed::segmentCommandOffsets() const = 10
    6205    270      4          <- ImageLoaderMachO::segIsReadOnlyImport(unsigned int) const = 116
    6206      .      .          -> ImageLoaderMachO::segFileOffset(unsigned int) const(0x8FE46820, 0x1, 0xBFFFC1C8)         
    6208      .      .            -> ImageLoaderMachOCompressed::segmentCommandOffsets() const(0x8FE46820, 0x0, 0x0)         
...
</pre>
There are obviously interesting bits here. How can we piggyback on the ''ImageLoaderMachOCompressed'' for example?


=== September 9, 2009 ===
=== September 9, 2009 ===
Line 46: Line 67:


The difference is about 50ms which copyinstr probably accounts for.
The difference is about 50ms which copyinstr probably accounts for.
= Previous statuses =


=== September 3, 2009 ===
=== September 3, 2009 ===
109

edits

Navigation menu