One of the major challenges of building shopping cart software is designing something that small and large online stores can both use efficiently. For instance, a feature that solves a problem for a corporate-sized site may actually cause new problems for a smaller Mom 'n Pop shop.
This challenge affects not only the design of the store's management tools, but also many things that operate "under the hood".
An area that undergoes constant scrutiny, testing and improvement is the store's Event Engine. The Event Engine is used to create sales, coupons and trigger behaviors when your customers shop (such as joining a mailing list when a specific product is purchased).
Events are very powerful. They can manipulate nearly everything in the storefront. However, the unfortunate side-effect of this power was that if a store had lots of simultaneous Events running, those Events could become a bottleneck that slowed the store's performance.
Breaking the Bottleneck
This week we released the second of two major speed increases that began last October. Both of these updates focused on reducing bottlenecks that could be introduced by an Event with many, many rules. The first half was released last October, and since then we've been working to finalize the second half.
How effective were these updates at speeding things up? In our benchmark tests, the load time of storefront pages was decreased 97.5%!
Let's see how that was achieved...
Ruining a Store... On Purpose
For our benchmark tests, we started with a typical account, and then loaded it up with about 60,000 products. Simply having that many products in a store doesn't really cause any degredation in store performance.
So, for the next step, we added many, complex Events. We did everything we could to bog the store down and make it run as slowly as possible. Events were created to put 50,000 of the store's products on sale. Every feature we could think of was enabled in order to make the store as resource-intensive as possible.
As a result, we were able to create a hobbling store with a typical page load time of 33 seconds. Congratulations, it was slow to the point of being broken!
Now, the fun could begin: fix it to make it fast again.
The Need For Speed Sustained Reductions in Page Load Time
The improvements were split into two halves. The first half was approached as "triage". The goal was to "stop the bleeding" and simply reduce page load times down to a point where the test store would be usable. Last October, this was accomplished with several updates that reduced the average page load time of the test store from 33 seconds down to 4 seconds. An 87.8% speed increase. Nice, but there was much more work to do.
The second half involved systematically reviewing lots of the "fiddly bits" going on behind the scenes. Things like: how much time can be shaved off calculating taxes? Can discounting multiple products at a time be made more efficient? How many database queries can be optimized, combined or removed entirely?
The second half was a much slower, methodical process. Would it pay off?
Bigtime. These "fiddly bits" further reduced the average page load time in our test store down to just 0.8 seconds. That's a 97.5% total decrease in page load times! The load time in our test store was now so fast that it singed our eyebrows as we shopped.
"Stop Hogging All the Fastness!"
Would you like your online store to benefit from these improvements? You got it!
A software update containing this blistering speed increase was released this week. An added benefit of the faster load times is that each page requires fewer server resources, improving the server's overall performance, which, in turn, helps the pages load even faster. It's like an Ouroboros of goodness.
We hope that all of our clients benefit from these recent improvements to the shopping cart software, whether they're a large site selling fifty-thousand products, or a small shop selling five!
|