28 September 2008

Solid State Drives won't speed up your compiles

NOTE: This was written in 2008. SSD hardware is better now...

(If you don't want to see off-topic stuff like this then use the on-topic filter.)

(Since this was written, affordable SSD tech has improved a lot, so it may no longer be true.)

I bought one of the new SATA2 solid state drives (SSD) in the hope that it would speed up compilation of the project I'm working on. The project is a large and complex financial system. I've been given quite a powerful machine (quad core Xeon, four gig of RAM) to work with but compiling the beast still takes about 1.5 hours.

With the normal HDD I heard a lot of disk thrashing. By default Visual Studio was compiling four projects in parallel (one per CPU) and it seemed to build faster (or at least no slower) if reduced that to two. I thought that the HDD's seek time may be a bottleneck when those parallel compilers/linkers were writing so much data in parallel. SSDs have great seek times so I ordered one to see if it would speed things up.

It didn't. At least not this particular SSD (a new model which only just came out), with the particular project I'm working on and the hardware it was combined with. It didn't make things any better or worse. I tried moving the temp directory to the SSD as well (since Visual Studio writes a lot of data to TEMP) but that made no difference either.

I took the SSD home and tried it with some of my Opus-related projects (plugins etc.) in case it fared better with different hardware. The SSD seemed faster in my home machine than my work machine, probably due to a better SATA2 controller (or maybe a less imposing real-time anti-virus scanner?), but it made no difference to compilation times compared to my existing HDDs. (That said, I've got quite fast HDDs.)

I've got no benchmarks to show because it never made any difference whether the SSD was used or not.

I'm just posting this to warn people not to waste money on an SSD if the aim is to speed things up. You'll get better value out of a fast HDD.

I've heard that some SSDs don't even use less power than laptop HDDs, on average. (Since they don't have a low-power state they are always on. HDDs use more power when active but when they are inactive they use less. So, if what I read was correct, HDDs use less power on average unless you are reading/writing a lot of data.)

This isn't to say that SSDs are useless. They're silent and don't produce heat (which means less fan noise and less power spent on spinning fans). The one I have seems about as fast as an HDD, too, and it's probably difficult to get 2.5" HDDs at this kind of speed. I'd like one in my laptop. (Sadly, my laptop only takes PATA drives so I can't put the SDD I bought into it.) Just don't buy an SSD thinking that the improved seek times will benefit your desktop because chances are they won't.

EDIT:

It's an OCZ Core Series V2 drive. They've only just come out this month (yes, just a few months after the previous generation) and I failed to find reviews that compare them to other drives, or the older Core Series ones. Maybe other types of SSD are better. A friend posted me an interesting article showing that the OCZ Core Series (not V2) and some other SSD models had some big problems due to the controller chip they used but I don't know if the V2 uses the same chip or corrects those problems.

Someone also said that compilation isn't disk intensive so the whole idea was stupid... Uh, it can be disk intensive and seek intensive, especially with the amount of data both written and read by four huge debug builds running in parallel. (Large PDB and SBR files are read and written. Large binaries, too, and all the header files, source files and lib files have to be read, of course.) (It can also be memory and CPU intensive. Where the bottleneck is will depend on the project and other hardware.)