DmbStream is starting to gain some momentum and I want the site to be received as fast as possible. It has over 1,100 registered users now, so every little optimization helps. I used YSlow to pinpoint some of the major issues with the site and it really shed some light on the bottlenecks.
Finally, the html output needed some compression. Once again, IIS7 makes this pretty simple to configure once you find the magic elements to add to the web.config. This article gives a good overview of the elements to add to web.config while this article describes using iis7 dynamic compression with output caching.
For my needs, I just added the following to the web.config <system.webServer> element:
So what are the results?
Empty browser cache: 123.2K
Primed browser cache: 48.5K
Enabling gzip and dynamic content caching:
Empty browser cache: 80.3K
Primed browser cache: 9.5K
That’s a reduction in size of 35-80% per request. Port80 says that these improvements speed the site up 6.1 times. Not too bad, for just adding a few lines to the a web.config.
I have some other tweaks that I’ll continue playing with (it looks like .gif files aren’t being compressed), but by far the most useful compression came from turning dynamic compression on. In other terms, compressing the generated HTML output.
If you’re looking for some more reading material regarding IIS7 compression, I recommend checking out this post as well.