Snappy results: why performance really matters

Published March 16, 2011

We’ve spent the last few weeks working on cleaning up our UI, improving our flight results and increasing performance.

I want to talk a little about performance and how we went about improving it. Why? Because performance, in my opinion, is the most important thing we can work on. Huh, more important than new functionality, better results and a simpler user interface? Yep, let me explain…

First, let’s rewind a little and look at the history of our search performance. The graph below shows how long it takes to get results for a typical search – bigger numbers are worse. We log this automatically every minute of every day to make sure things are running smoothly. 


As you can see, we’ve had at least three big releases that impacted our performance. And haven’t been trending in the right direction until now.

So why did we get worse? Basically we improved the quality of the results. We have a set of test queries (a few thousand) the we measure ourselves against. That is, we know what ‘good’ results are but we don’t always find them all. So, we measure our actual results against these ‘good’ results, striving to improve over time. So, in the previous major release we improved the results but it cost us a lot in performance. That’s pretty usual for us nerdy programmer types –  there is always a trade-off.

We were really unhappy with the performance after that previous release. It really hurt our user experience because the site felt sluggish to use. It was also hard to demo in front of a crowd – wait time really stands out when the spotlight is on you! When I was showing rome2rio to the cool folks running, they apologized for their slow internet speed!

It’s not just about user experience. Bad performance also costs us money – because we need extra servers to scale. Also, remember that we trade time for quality. So, better performance means we can afford to spend some time on finding better results. Wow, improving performance means our site feels better to use (faster results), is better to use (better results) and costs us less money to run.

Do you want to hear about the details of how we improved the performance? Let us know if you do and I’ll whip something up. But let me warn you, it might get a little technical 🙂