Posted in Uncategorized on March 31st, 2010 2 Comments »
The fastest review I ever got was when I deleted a bunch of code from libjar. It was so riddled crud it was next to impossible to modify the code. That was a mere 24KB patch produced manually. Ehren just put my personal records to shame with a 94KB patch that got r+ed at breakneck [...]
Posted in Uncategorized on March 29th, 2010 1 Comment »
There is a little bit of a disconnect between the kernel, the dynamic linker and compile-time linker. As I mentioned in my main “startup sucks” post: not-notifying the kernel of your patterns can kill performance, so can reading files backwards. Turns out that if the compile-time linker lays out files without considering *exactly* how they [...]
Posted in Uncategorized on March 25th, 2010 Comments Off
Got some helpful comments on my previous post. madvise(WILLNEED) in ld.so Frank Ch. Eigler pointed out that other people have noticed the madvise/mmap deficiency in the dynamic linker. Unfortunately those unfortunate people did not have the ability to flush caches or to measure page faults exactly. Linux has gotten a lot nicer for diagnosing this. [...]
Posted in startup on March 24th, 2010 6 Comments »
Note: I am doing my measurements and experiments on Fedora 12, once I feel that I understand and can solve the problems on Linux, other operating systems will follow. The aim of this post is to document what I have learned about the mysterious process of loading programs from the filesystem perspective. A binary is broken [...]
Posted in startup on March 23rd, 2010 3 Comments »
Graphs Note: the following graphs broke on the nightlies this week. I would appreciate help with reducing this to a proper testcase. They work fine on older nightlies and released versions of Firefox. Non-spidermonkey JS engines wont work as they don’t support destructuring assignment and other goodies. Once I graphed my file-access logs, most of [...]
Posted in startup on March 11th, 2010 21 Comments »
Dietrich blogged a “wake up and smell the startup” executive overview of startup issues caused by our extension practices. This post is a “numbers” followup. For this experiment I installed a brand-spankin-new copy of Linux Firefox 3.6. Firefox is installed on a 7200 hard drive, the rest of my system lives on an SSD. The [...]
Posted in Uncategorized on March 5th, 2010 5 Comments »
In an earlier post I described my Fiji hack: how to use some nasty instrumentation to spit out ld scripts to speed up cold startup. This week I tried to extract more data out of the binary to lay it out even better. Trouble is that even if one lays out functions perfectly, they load [...]