ECMS Horizons

Performance Boost

Many of you are aware of one or two items that we've fixed or improved for you specifically because we've been doing a lot of that work one on one lately.  There are a LOT of changes that have been made to ECMS to make everyones lives easier as a result.

The big change that I'd like to go over today is our latest, I'll come back to the others in a future compilation post.

Performance Boost through a Block Cache

We've been working for over a year on methods to cache content to boost performance and responsiveness.  A cache serves to hold content thats already been processed so that the next time it's asked for, if nothing has changed, we can just send the cached content saving time.

Caching isn't so simple though, when I say that we need to know if something has changed, that means that, not only do we need to know if the Section for instance has changed, but we also need to know if the CSS styles it relys on have changed, or any of the media files it uses have changed, etc.  Any one cache record could depend on a dozen other resources in the system.  Needless to say it took a while to wade through.

Anything can be cached, but for our purposes we chose to use something called a Block Cache.  What that means is, that instead of caching entire pages which might have a hundred dependencies and would end up being re-built so often that it defeats the purpose, we only cache parts of a page, or blocks.  A block can be an entire section or something as small as a single menu item. This method gives us much more flexibiilty, and also means that cached resources won't be changed as often and will live longer in the cache.

We're happy to say the new caching system went live last week and the results have been impressive if we do say so ourselves.  We've shaved a whole second off of our response time and when we were only talking about a 3-4 second page load, that equates to a 25-35% increase in performance!

Quicker Time to Screen

Besides the big changes, we also made a lot of little changes, like allowing resources to be loaded asyncronously; such as CSS and Javascript.  By doing this, your browser doesn't need to wait for everything to finish downloading before putting content up on the screen. 

In addition to moving things around we also implemented new techniques for "minifying" and consolidating our scripts and CSS to reduce file sizes and even the overall number of resources needed to load a page, all of which reduce the time it takes to download your website.

The faster we can get content up on the screen the faster the site feels in general.

Platform Upgrades Yet to Come

Not all performance boosts comes from software, although it's a lot easier to squeeze miliseconds out of code.  The other big factor in speed is hardware, and being in the cloud certainly makes it easier to upgrade, but not simple persay.  We have two final goals, first to upgrade our load balancers, and second to upgrade the database server.  Combined these two will reduce latency, and increase throughput, resulting in a further performance boost giving us the most out of our other changes.

In Closing...

Our job will never be done, 97% on Page Speed means we've got room to improve, and as far as I know there's no such thing as a perfect score, although that's not going to stop us from hitting it!  As always we'll continue to keep you posted on how we're working to improve our platform and your web presense.


Kevin Farley

© 2004 by eCommunities, All rights reserved. Site & Service Policies

Powered by ECMS Horizons