I’m a bit of a hardware geek. I tend to keep up on what’s new and neat. I’m a bit conservative when it actually comes to buying the latest and greatest, but that doesn’t stop me from following the trends.
I’ve been eyeing solid state disks for the last year or so, speculating that they could have a huge impact on developer productivity once all of the major gotchas were worked out. I specifically though that pairing a decent laptop with an SSD would be awesome, since laptops generally have significantly slower hard disks than workstations. They’re also a bit slower across the board (cpu, memory bus, etc), so I thought the IO boost from an SSD might even things out.
In December I decided to end the speculation, so I bought an 80G Intel x25m (Gen 2) SSD for my 15″ Unibody MacBook Pro.
As it turns out, the SSD is faster than the 7200 RPM disk that was in my laptop by every measure. Though, for most of the day-to-day tasks that I benchmarked, it wasn’t that much faster. For my Java and Rails projects, building (Java only of course) and running test suites ran between 5-25% faster. Deploying Java apps was about 5-10% faster. Reindexing a whole project in IntelliJ IDEA was about 40% faster. These are real improvements, but they’re not the knock-your-socks off speed improvements I thought I might get.
There are some benchmarks that were way-way-way faster. Running migrations on a database: super fast. I just don’t do those things that often. When you read about SSD performance, you see charts that make them seem 10-20 times faster. They are in some cases, just not for most of my regular usage patterns.
I learned that the real benefit wasn’t really speedier builds or faster tests. An SSD simply makes the machine zippy all the time. Applications launch as fast as they do once they’re already cached by the operating system, even when they’re not. In fact, the difference between a warm and cold start for all apps is nearly gone. Spotlight is essentially instantaneous. Opening new windows, web browsing, pulling up preferences, switching between apps… it’s all snappier. Even when you think it shouldn’t be — because the data has to already be in memory — it feels just a tiny bit faster.
You know that feeling when there are two apps vying for the disk at the same time? Everything just slllooooowwwws down as the drive hops from one section of the disk to another, multiple times each second as it fetches disparate data. Yeah, that doesn’t happen anymore. Heavy disk IO and multitasking aren’t a drag. For example, I don’t notice when Time Machine is running anymore because it doesn’t effect my work at all, even when I’ve got a number of my own disk heavy tasks going.
Sounds awesome, right? Well, where prices are now you’re paying about 20 times more per storage unit than normal drives. That’s way better than the 50x from 18 months ago, but it’s still a lot more.
Is it worth it? Since I could get away with buying an 80G model (~$260), I totally think it’s worth it. If I needed a bigger drive than I wouldn’t have been able to bite the bullet in principle ($500 for a 160G drive is crazy). Luckily, it will become an easier decision later this year when the 3rd generation drives hit the market. They’ll been even faster, offer more capacity, and come with a slightly more reasonable price tag.
If you’re thinking about it, get educated because there are drives that are good (Intel x25m) and many others that are not. AnandTech is a great resource for benchmarks and all kinds of information related to SSDs. While most of the major gotchas have been worked out, it’s a good idea to make sure your hardware, operating system, and future SSD will be friendly.
In the end, I’m not getting tons more stuff done than before, but it’s certainly more fun to code when things are always snappy.
PS: You can check out my limited development-centric benchmarks here.