A few months ago I decided to try to use the asynchronous storage API that was added in Firefox 3.1 to help reduce the pain of disk IO on the main thread. Sadly, it became quite apparent that this was going to be too big of a change and need to much work to make it into 3.1, so I put off doing any more work on it. However, this week I started working on the patch again, updating it to work with the changes to the location bar and the storage back-end. Today I finally got it passing all of our existing tests (although, I know of at least one condition where it fails and is untested).
Now that it’s passing all tests, I feel comfortable posting a test build for folks to try and see if it helps or not. I should note that the current implementation is pretty dumb and doesn’t take many opportunities speed up results. Additionally, there are some other performance wins that are on my mind that become a lot easier to do with this newer implementation.
Admittedly, I haven’t benchmarked this yet, so I don’t know how it compares to the existing code. During causal use, however, it feels no slower than the existing implementation, but I don’t usually have issues with it. The goal here is to help out those who do have performance issues with the location bar. In fact, that’s exactly the feedback I’m looking to get. So, if you are feeling ambitious and willing to live on the wild side for a bit, I’d like you try this test build. After a little bit of use, let me know if you think the results are faster, slower, or about the same. Note: this is build off of mozilla-central, so it’s like a 3.2a1pre build.
Your feedback is greatly appreciated!
9 replies on “Test Build: Asynchronous Location Bar Searches”
I suppose another thing to mention is that the original C++ code was rewritten as this async implementation in javascript.
@Edward
Yes, with some minor adjustments.
Does this mean that searching in the awesomebar won’t hang the UI?
@Ben
That’s what we are trying to solve! I’m not so sure this patch is enough mind you, but it’s a step in the right direction.
Awesome. I’ll give it a try.
This sounds awesome. I try to keep as much history as possible, so searches can take a while under certain circumstances. Do you have a bug # where the patch is located? The try-server doesn’t seem to do both linux x86 and x86-64, and I’m the minority latter.
@Cesar
You’d be looking for bug 455555
[…] Comments Shawn Wilsher on Test Build: Asynchronous Location Bar SearchesCesar on Test Build: Asynchronous Location Bar SearchesBen Hearsum on Test Build: Asynchronous […]
[…] Bar Searches (Take 2)Test Build: Asynchronous Location Bar Searches (Take 2) : Shawn Wilsher on Test Build: Asynchronous Location Bar SearchesShawn Wilsher on Test Build: Asynchronous Location Bar SearchesCesar on Test Build: Asynchronous […]