Kartones.Net: Speed improvements on the site

I've been lately working hard on my spare time to make some speed improvements to the site. Although we're running a slightly modified version of CS (with some internal tweakings and unused modules disabled), one of the things I love is trying to optimize an existing code base to "do the same with less".

Some of the improvements are quite simple and plain, like compressing CSS and Javascripts with YUI Compressor. I still have to compress more, but as some of the JS are included in one of Community Server Assemblies, I first had to merge my own changes to the main SDK source code (In order to be able to properly rebuild the CommunityServer.Web.dll).

Other changes include cleaning of ASPX CS templates, Theme templates (with unused features like ratings or default CS advertising spots), and mostly reduction of both the output HTML/CSS/JS and the number of HTTP requests needed to fully load a page (I think there's room for further improvements here, but I prefer a "small changes and multiple updates" approach).

Another big impact feature I've requested (and as of today it should be active) is GZip compression at IIS level to compress web pages. Since the majority of browsers now accept compression, it will help to deliver pages faster to most users.

Some internal DB tweaks and a few table cleanings have been applied, and I shrink the DB each month, so I hope all this effort gives some improvement to the overall performance of the site.

I also fixed an internal url-shortener service of Community Server, but at least for now it will be kept internal and only for the Twitter news account general updates (not post updates, as is.gd outputs smaller urls and I don't have to build any API access).

Next steps are both more improvements on minimization of output data, and more serious internal tweaks of CS (I'm focusing first on common components and most visited stuff like blogs). As I am learning PHP I don't plan any important update feature-related in a short term, but if I think about something interesting I don't discard implementing it :P

As always ends happening, we forget the 80%-20% rule, so for the next time I'll invest time in properly fighting with crappy Visual Studio upgrade wizards the first time instead of delaying it until it is a requirement (and thus avoiding having to do merges of source code changes).

Posted by Kartones on 2009-03-18

Comments?

Share via: Twitter Linkedin Google+ Facebook