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 No Comments »
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 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 [...]
Posted in Uncategorized on February 26th, 2010 2 Comments »
The Dehydra installation instructions got to the point where they were more confusing than helpful. I spent this morning cutting out irrelevant crud, please let me know if there are any further cleanups that need to be done.
Posted in Uncategorized on December 17th, 2009 4 Comments »
I filed bug 533874 to expose the JavaScript AST to JS, but turns out I need to explain why it’s important to expose the JavaScript AST. So lets start from the beginning. My name is Taras and I like to wrestle useful information out of tools that do not think to offer it. I firmly [...]
Posted in dehydra, Uncategorized on November 20th, 2009 1 Comment »
I spent couple of days fixing the remaining test-suite failures on GCC 4.5 trunk for Dehydra. Since the last time I looked into this, GCC went from crashing all over the place to only crashing if I did something bad. It was nice to discover that as a result of switching to 4.5 Dehydra users [...]
Posted in Uncategorized on October 23rd, 2009 2 Comments »
In my last blog post I expressed frustation with slowness induced by library IO. Then I went on a mission to measure it. I have been wanting to this for a while, but I figured that only DTrace can get this info without recompiling my kernel. So I tried to build Mozilla under Slowlaris (but [...]
Posted in Uncategorized on October 20th, 2009 6 Comments »
So I’ve been trying to figure out how optimize disk IO startup. I looked into IO caused by libraries and turns out that apps with big libraries are screwed. Here is how I came to this conclusion: Gnomer’s research on startup pointed out that dumb readahead leads to wins in terms file io. So I [...]
Posted in Uncategorized on October 8th, 2009 3 Comments »
I spent the past couple weeks analyzing and improving fastload performance. I’ve long been suspicious of fastload, but only finally got around to investigating it in detail. I think there is some fundamentally ironic rule in software that if you put the word “fast” in the name of a component, it is bound to eventually [...]
Posted in Uncategorized on September 30th, 2009 No Comments »
Ever since the plugin branch landed in GCC, I have been itching to explore the application-specific optimization space that it opens up. It’s really hard to optimize code in the general case, but it’s relatively easy to optimize for something for specific use-cases. We can rely on API-specific static analysis in order to get rid [...]