I’m a strong believer that performance is a feature and often one of the most important features a website or app can provide. There are plenty of well known statistics about how half a second of added wait time can cause a 20% drop in traffic, or even 100ms can cause a significant drop in revenue. These are good ways to sell the need to focus on performance, but when your website operates at even moderate scale, you can find some really interesting ways to frame performance improvements and see that performance isn’t just about improving your business. Every millisecond you can shave off a request gives that time back to the people who use your application and the amount of time you give back to the world with even a moderate performance improvement may surprise you.
For background, DealerOn isn’t by any means a massive tech company. We have a few hundred employees and provide websites for a few thousand car dealerships. Even within the niche of car dealership website providers, we’re not the biggest player. But even at our size, seemingly modest improvements in performance can make an enormous difference when viewed in the context of scale.
We recently finished moving our production servers to Azure which allowed for significant modernization of our infrastructure, networking, and databases. After everything settled, this move resulted in a decrease in average server response time from 295ms to 165ms. Around 1/8 of a second may not seem like a lot, but when you factor in that our web platform handles around 300 million page loads per week, this adds up quick. If you filter out the traffic from bots crawling our sites, we serve around 29 million page loads per day. When you take the sum of all of the savings, this adds up to 1,046 hours of saved time every single day. That’s over 43 days that humanity as a whole doesn’t have to spend waiting on a car dealership web page to load.
The Human Lifespan Unit
If you continue on the same track, we can calculate that we’ll save 1 year of cumulative latency every ~8 days. In a little less than 2 years, this saves the ~79 years of US life expectancy. I call this the “Human Lifespan Unit”. Saving 1/8 of a second per request might not seem like much, but when viewed at scale, a moderate performance improvement can literally give back lifetimes which would otherwise be spent waiting for a browser to stop spinning.
This is admittedly fuzzy math, but it also does put seemingly small performance gains into a more macro perspective. It’s rare to have a single performance improvement make such a massive, sharp difference. More often than not, I thought I had found a “silver bullet” solution, but when we deploy it, it’s swallowed up among the noise. A week later we can perhaps show that there was a ~20ms improvement on average. It’s easy to lose motivation when the gains seem small and undistinguished, but when you can look at those 20ms as a 0.9 human-lifespan-per-year of savings, it’s easy to see the importance.
Even if you’re not operating at this scale, creating your own units of measurement can help put changes into perspective. If you run a small website, measuring performance impacts as hours or even days of savings per year will give a more concrete representation of time savings and an easy way to communicate the value to non-technical people.
To Sum It Up
When you’re looking at the impact of performance improvements, don’t just think in terms of milliseconds. These levels of changes are abstract and thinking of it as fractions of a second downplays the importance of performance. Factor in scale when you think of performance and you may find that even modest improvements in page speed can save lifetimes worth of latency.