Archive for August 24th, 2008

Speed up your Windows XP machines with eBoostr!

Sunday, August 24th, 2008

I was doing a bit of research not long ago, looking for a Windows XP equivalent of Windows Vista’s ReadyBoost feature. As it turns out, there’s an awesome product available called eBoostr which does what ReadyBoost does and more.

ReadyBoost is perhaps one of the few truly nifty improvements in Windows Vista: the ability to add an additional layer of RAM to your machine without actually adding any RAM modules. The idea is fairly simple, but before I get into that, a brief primer on the various types of memory in a computer system.

The fastest memory in the computer is the cache built into the CPU itself. This memory is very tiny and expensive to create, but it’s blindingly fast. The next layer of memory is RAM, which is slower than the on-die processor cache, but larger and cheaper to create. Typically, the final layer of memory is the hard disk. The hard disk is significantly slower than RAM (RAM is about 50x faster in most cases), largely because of the necessity to seek to a location on the disk in order to read data. The hard disk is also non-volatile storage. A power loss does not eliminate the data contained on the drive, unlike in the cases of the CPU cache and RAM chips. In one of the machines I’ve got here, the speeds are as follows:

  • CPU L1 cache (64KB) 11-12 GB/s
  • CPU L2 cache (2048KB) 6-7 GB/s
  • System RAM (2048MB) 2-3 GB/s
  • Hard drive (100GB) 20-40MB/s

Now that you have an idea of how the speeds typically run, I should explain what ReadyBoost does. ReadyBoost allows you to add a new layer of memory, between the system RAM and hard drive layers in the list above. With ReadyBoost, you can turn any reasonably fast thumbdrive into a disk cache. Common reads from the hard drive can be stored in the thumbdrive’s memory. For instance, when you start your web browser, you’re touching dozens of different files (the browser’s main executable, any DLLs it depends on, etc). If you run the program enough, it will be cached on the ReadyBoost-managed thumbdrive so that the next time those files are accessed, they can be read much much quicker than if they were being read from the hard drive itself. This also makes it so that the hard drive is available for other read/write operations and eliminates a lot of seek time and read time.

eBoostr kind of beats the pants off of ReadyBoost, though. One of eBoostr’s advantages is the ability to use more than one cache device at a time, but there’s an even bigger advantage. Not only can you use a thumbdrive as a disk cache, but you can also use extra system RAM as a disk cache. For instance, in my MacBook Pro, I’ve got 3GB of RAM. I very very rarely use up more than a gigabyte or maybe one and a half gigabytes, even when gaming. So what I have done with eBoostr is assign 1GB of it to act as a disk cache. The speed improvement is extraordinary! Typically, it is on the order of 10 to 100 times the speed of a disk read.

eBoostr also collects statistics about which files are accessed frequently to improve its caching mechanisms. I recently installed eBoostr on my mother’s laptop, which she uses frequently for predictable tasks. She runs Internet Explorer, Outlook Express, Windows Live Messenger, Solitaire, FreeCell, and a select few other apps quite frequently. She sparingly uses other programs, and eBoostr knows this. I looked at eBoostr’s cache hit rate on her machine, and it sticks at about 95% all the time. This means that for 95% of disk reads, they are taken directly from her RAM cache. For a machine like hers, this offers a 30x speed increase for those particular reads.

In my case, though, the statistical analysis that eBoostr tries isn’t quite as helpful. I have a fairly unpredictable usage schedule. I will use Outlook, Firefox, Skype, Cygwin, Visual Studio and various apps that come and go on my machine as I decide I do or don’t want them. My hit rate stays at about 85%, which is still fantastic.

I very highly recommend eBoostr for anyone running Windows XP. It’s a great product, and really should be supported!

Alright, I’d better give bit of technical info for suspicious geeks. I do realize that there are a ton of scam products out there which claim to “make computers faster”, but eBoostr is one of a handful of technically feasible products. The way eBoostr works is that it installs a system driver which hooks any sort of disk I/O. If there’s a write to a file that’s in the cache, eBoostr marks that item invalid and re-caches it on the next read of that file. If there’s a read, eBoostr checks if it’s in the cache, and if it is, it throws the cached file back at the program instead of allowing a hard drive read. If it’s not in the cache, eBoostr reads the file into its cache so that it is much faster to read the next time it’s accessed. Don’t worry about writes, though; they are not cached, because doing so would introduce horrid unreliability in the case of a power loss or system crash.