109
edits
Joel Reymont (talk | contribs) |
Joel Reymont (talk | contribs) 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. | ||
=== September 3, 2009 === | === September 3, 2009 === | ||
edits