Sunday, 19 April 2009
After my previous posts on investigating upgrades, I went and bought a bunch of stuff. As I mentioned before, prices of computing gear have come way down. Normally I have a budget for upgrading the storage after about 2-3 years, For that money I've actually bought 4 drives & 2 external bays, an SSD boot drive replacement and 8GB memory. Over the next few weeks I'll post my impressions of each of the upgrades as I apply them and test them out. Of course, I'll be reporting on performance of photography applications, with general notes on wider performance. Like all my other reviews of stuff, this will be very subjective but hopefully I can offer some insights for others who might be looking to improve their system.
Preamble out of the way, let's get into the first part: memory upgrade. This is the first part because it's easy and so got done first. I bought 4x2GB OCZ modules which have a better spec than the original OEM stuff loaded. Fitting the memory is fairly straightforward and the system instantly recognised it. Some will be asking why I've installed 8GB on a 32bit OS (XP Professional in this case), which can only get at 4GB. I'll explain a little later.
As I expected, the memory itself doesn't have a huge impact. XP reports about 3.1GB available. I don't run programs that regularly overload RAM. I don't have huge, multi-layers Photoshop files. Probably the biggest strain comes from panorama stitching. Very few files over 100MB. So why add more memory? Two reasons: cache & RAM disk. This is where things get interesting.
If applications aren't pushing RAM limits, nor processor capacity limits then the bottleneck is elsewhere in the processing chain. There are some great candidates: poor software programming (way more common than I'd like), disk access limits or latency problems (how long it take to get stuff done - this can be a memory speed or disk access issue).
In my normal photography processing I don't push large files. I don't have a copy of Photoshop CS in any variant and don't do large, layered files. Thus, memory capacity isn't a huge problem for me. I can't actually remember running out of space on the 2GB. The paging file (virtual memory) is another story. Most software I run seems to need as much paging as real memory I'm sure in the dim, distant past that virtual memory was a last resort, not so now. This leads to a large amount of background disk access. I've been finding that to be the biggest bottleneck. I also think this is quite a big difference between Mac and Windows systems (lthough I'm no expert and am happy to be corrected) that Mac uses virtual memory much less than Windows does.
Enter RAM disk. I downloaded Superspeed's RAMdisk Pro. This allows access to the memory above the 4GB limit of 32bit systems. It was painless to set up my excess 4GB as a disk. Then I set this as the system virtual memory. Run a few apps, and suddenly background disk access vanishes. Responsiveness is high. Processor usage is up, way up*. Things fly by. The biggest noticeable gain has been with Lightzone, which is slow on a good day. Suddenly conversions fly by and normal processing is smooth with no hang-ups. Nice. Single export on Lightroom don't even show a progress bar. Batch conversions in Lightroom show marked improvement, too. All that processing that used to swap in and out of disk is now all in memory.
The 8GB extra RAM plus the software comes in at around $150. I'm not sure I could get as much performance improvement for the money any other way.
Next step was to install Superspeed's SuperCache. This takes me back. In the ancient world of DOS, it was good practice to assign a small portion of RAM to disk cache to remove the delay in disk writes. I used to use 1MB on my 8MB system for such a purpose, with delayed write**, and it really made my system fly. Now in 2009, we're back in the same world. The difference is that cache size (from real RAM, within the 4GB limit) can be varied by drive. It also seems to be applied as needed, rather than being permanently assigned memory.
As I've got 10 partitions on my system, that's a help. Only draw-back is I can't assign cache to network drives, too. Simple business to set up the cache, together with the "lazy write" feature (which delays writing to the disk). Now the latency of large disk write activities is gone. I ran a test, copying a bunch of files from one partition to another (over 100 approx 50MB TIFFs) with and without SuperCache active. Using SuperCache was about twice as fast as without.
*So much so that I over-heated the system running a whole lot of CD ripping one evening.
**NOTE: there are risks of data loss with this method. Be careful.