If you're like most, you've spent a lot of time and money
building your web site. You've tweaked your database code,
streamlined your ASP and/or ASP.NET code, set up caching
to make things faster, and validated your HTML to the latest/most
compatible version so that everything will be perfect.
Why should you stop there? There's an easy way to improve your site
even more by speeding it up...
XCompress is a compression product
that works either as an ISAPI filter or as a COM object. It compresses the data (using the GZip
compression format) right before
it leaves the server. The data is then transfered to the client in its
compressed form. The client then decompresses it.
Most recent browsers handle this by default and for the ones that don't,
seamlessly downgrade to a non-compressed data transmission mode.
Using it as
an ISAPI filter (the most common usage) is so simple it's scary...
install it, tell it what types of files to compress, and it does
the rest. No additional programming or changes to your pages
are necessary. It even compresses dynamic content
(ASP/ASP.NET files) on the fly, making the resulting pages
a fraction of their original size.
I didn't really play with the product as a COM object, but if you
do need to do something a little different, it's nice to know that
type of flexabilty is built in.
There's really not much to the UI of the product:
That's about it! Simply install it, enter your license key,
tell it what MIME types to compress in the dialog box above and
you're good to go. If you're not sure which types to compress,
you're in luck, the product includes some recommendations and
plenty of documentation.
Perhaps the most useful feature of the product (aside from it doing it's job!)
is the fact that it includes performance monitor counters so you
can see in real time how well it is working. For example, if you
set it up to compress already-compressed file types, you'll notice
very poor compression ratios. By checking the statistics on your
own site, you can find the settings that work best for you.
The product does what it says and does it quite
well. Best of all it does it without a lot of fuss on your part.
That being said... I'm not sure how much this will help the average web
site since many sites suffer from other performance
issues that are probably having a larger effect on their perceived performance
then their bandwidth consumption.
On the other hand... it really can't hurt! If performance is important to you
and you've already optimized what you can, give XCompress a look.
The situations when I would consider XCompress (or some other
compression solution) to be an absolute must are on sites that...
...have a lot of users using slow (aka. dial-up) connections. - They need all the help they can get!
...pay for bandwidth on a per MB transferred basis. - It'll pay for itself pretty quickly.
...serve content that is highly compressible (like .bmp files). - The perceived speed increase will be worth it.
...don't do a lot of processing, but find their net cards pushing their limits. - It's much cheaper then a new server.
I've gotten quite a few questions from people asking why they
should use XCompress when IIS has built in HTTP compression and it's free.
Here are the main problems with IIS compression that I've run across:
It's difficult to configure for different file types - registry editing is the only way I could find to get the job done. It doesn't compress ASP.NET files by default and it operates off extension and not MIME type.
It's impossible to set it up differently for different sites hosted on the same server. All changes affect the entire computer.
It has some bugs that can be a real pain to deal with. KB article Q313712 is the big one. XCompress's site lists a number of others, but misses Q314307.
It's simply not as efficient as XCompress and uses more CPU cycles.
Update: More on XCompress vs. IIS
I recently got an email from my contact over at XCache mentioning a new
page they've posted. It seems they've had a lot of inquiries about how XCompress is different from the built in IIS
compression as well. I thought I should mention it for those of you who want a
little more information. Their list of reasons why XCompress is superior to
IIS built in compression can be found
They've also reworked their site a little to make it clear
that XCompress does not have some of the problems that IIS does.
Both the "First 2048 Bytes" and "Uppercase Characters"
KnowledgeBase articles make it sound like these are problems with all compression
products of this type when they are in fact only problems in IIS compression.
See the page linked above... it should help clear things up.
Update: XCompress for IIS 1.2 and XCompress 1400
A new version of XCompress is out... XCompress for IIS 1.2.
For a list of new features existing customers can login and
check out their
"What's New in This Version"
page and then download the new setup.
For those of you looking for a hardware based solution, our friends over at XCache now have that covered too...
The XCompress 1400 is a compression only appliance using HTTP Compression in a
highly effective way to improve page response times and lower bandwidth
requirements. Most text transmissions regardless of origination (i.e. XML, ASP,
CGI, JSP, DHTML, HTML, etc.) can be compressed by up to 90% by the XCompress
1400. For most web applications, this degree of compression translates to an
overall bandwidth reduction of approximately 30% - sometimes much higher.
For more info on the XCompress 1400 compression appliance,
XCompress for IIS Version 2.1 Released
XCache Technologies has launched XCompress for IIS V2.1. This latest version
is vastly improved over V2.0, fixing many bugs reported by customers running V2.0
and has been extensively beta tested.
XCompress for IIS V2.1 supports Windows 2003 .NET Server running IIS 6.0 and
Windows XP for development environments. The Windows 2003 .NET Server version
runs both in IIS 5.0 isolation mode and multiple process IIS 6.0 mode.
XCompress for IIS V2.1 supports Windows XP and IIS 5.1 for those of you wanting
to run on development servers.
XCompress for IIS V2.1 also allows you to choose what type of streaming
optimization you want for true streaming compression, and fully support
Cold Fusion files. We have also updated the Smart Compression Technology
code to address .bmp files.