February 20th, 2010 §
For a while I have been harping on about how much difference a speedy hard drive can make to a developer’s PC. So, I took my own advice, and recently coughed up the cash for a new Crucial 2.5 inch 256GB solid state drive. You could argue that doing this was even going two / three times better than my previously recommended solution of a Western Digital Velociraptor (10,000rpm). The performance difference is astounding!
Here’s the obligatory Windows Experience Index (WEI): 7.3 for the drive (the highest rated item on my Laptop).
Previously, the one of the fastest available magnetic drives for laptops (2.5 inch form factor) was the Western Digital Scorpio Black, 7200rpm drive, which previously scored 5.7 in the Windows Experience Index on my laptop. Admittedly the WEI isn’t a very scientific benchmark, but it is based on an all-round measurement (both sequential & random read/write). The Crucial SSD is, in theory, around 3-times faster at average sequential reads than the Scorpio Black (the Crucial reads at between 230 MB/sec and 250 MB/sec, whereas the Scorpio Black reads at between 63 MB/sec and 76 MB/sec). Most people’s typical usage is not based on one extreme or the other between sequential or random IO though. Between the operating system and our applications, we do a little of everything.
Subjective review
While having specific performance measurements might help prove one drive is better than another, most of us will probably judge how much faster one drive “feels” in our system. For example, I’ve noticed that my laptop tends not to wait on disk IO anymore and if my processor was faster, I might be feeling the benefit of my new Crucial SSD even more than I am now, and its already made a big difference to me. I don’t play games on this laptop, so if anything feels like a bottleneck, its the Core 2 Duo 2.5Ghz processor. Now that data comes off the disk so fast, single threaded applications seem to end up waiting for the CPU.
I’ve also always used my Disklight.NET system-tray application on all my PC’s, to keep an eye on when my hard drive is holding up my PC. At work, my PC is under my desk, so when its being slow or unresponsive, it’s nice to have something to tell me when it’s waiting on disk IO. Most of the time, I hardly ever saw this application show more than 25 MB/sec on any of my machines with magnetic-platter hard disks. On the right is a screenshot of the readings when starting up a Windows XP virtual machine on my laptop (by the way, the XP virtual machine boots in about 9 seconds). I’ve even seen “Read:” values as high as 168 MB/sec when running backup software that scans my music library.
Power consumption & other benefits
The other main plus sides for solid state drives:
- typically consume about 0.5W of power, whereas most magnetic drives will consume anywhere from 2W to 15W. Therefore, they will help extend battery life in laptops.
- do not get hot
- no noise
- no moving parts, therefore failure rates are lower
- less risk from physical impact & movement because there are no moving parts
- lighter (reduces weight in laptops)
August 11th, 2009 §
A couple of weeks ago, I wrote about how developer’s need faster hard disks. Now I’ll try to expand on that and build a case for how much it might be costing you to continue using that standard build corporate development PC. You’re probably like many other developers out there and using a standard-build office PC, possibly with a little boost of RAM to allow you to run some local databases along with your development environment. Of course, this is all assuming that you are like most developers out there that use a PC purchased and supplied by your company.
If you’re like me and work with .NET for most of your day and spend time developing with Visual Studio, you should start paying attention to how much time you end up waiting for your PC to complete any operation that makes you wait. (This also applies to PHP or Java developers, using Eclipse or any other Java-driven development environment.) For example, switching between Code and Design view can cause long waits on complex projects. What about cleaning, compiling and debugging your code? Starting up your browser? Hitting an exception and switching to debug in Visual Studio? All these little waits add up and 10-15 cumulative minutes of your day spent waiting is not an unrealistic figure.
So what is a Developer’s time worth?
Here are some assumptions, based on the UK market average salary for a “.NET developer” (avg. salary taken from itjobswatch.co.uk) 
If we take our worst case estimate of 15 minutes spent “waiting” each day, then we can extrapolate the following based on a 37.5 hour week: 
The best case estimate of “waiting” 10 minutes each day:
Now looking at the Dell website (I’m not biased towards Dell in any way and I’m only using them to provide a quick comparative cost), an Optiplex 960 with the following specification:
- Intel Core 2 Duo E8400 (3GHz, 1333MHz, 6MB)
- 4GB 800Mhz Non-ECC DDRII Memory
- Drive 1: 74GB 2.5 inch Serial ATA (10,000rpm)
- Drive 2: 160GB 2.5 inch Serial ATA (7,200rpm)
- Intel Graphics Media Accelerator 3100 with a maximum 256MB of shared video memory
- 16x DVD-ROM
- Vista Ultimate SP1 32-bit (free upgrade to Windows 7, or add £5 to downgrade to XP pro SP3)
- 3yr warranty next business day
This costs £873.00 excl. VAT (and businesses would claim back VAT anyway) at today’s prices – 11 August 2009. This desktop spec is targeted at a typical web-developer. If you’re going to be doing any serious graphics or .NET WPF, consider adding the “ATI Radeon HD 3470 256MB DDR2 full height DVI/VGA Output” for an extra £97.00. I’ve left out the monitor, keyboard and mouse because you should have those on your current machine. We’re pricing an upgrade here, with the aim of passing your standard-build back into the office pc-pool.
No matter how high-spec the new PC, its never going to perform operations instantly, so we’re never going to save ALL of that 15 minutes per day. Even if we could reduce it to half the time, or less, then this exercise is probably worthwhile. Most IT business cases that I have seen, want to pay themselves back within 3 years, and as long as we can shave at least a third off that “waiting” time, then we’re in business!
There’s also an additional benefit that is harder to attach a price to. When typical developers end up waiting for a long-running task to complete, they probably context-switch themselves onto another task to try and keep up efficiency. I firmly believe that any serious development should be done without distractions (I’ll save the detail for another post), and this “context-switching” could be considered a distraction. What if you forget to go back and finish some task after switching over to reading an email, for example? Maybe you’ve just inadvertently introduced a bug…? How much time and money does that cost, since it might affect you, as well as anyone else involved in checking or using your software.
So development team managers:
Take another look at the equipment your team is using and ask yourself “how much are those standard-build PC’s really saving me by being cheaper than a higher-spec version?”
August 1st, 2009 §
Software developer’s PC’s really just need lots more RAM than the other, standard issue, office desktops right? After all, it is the accepted and cheapest way to give a machine a power boost – add more RAM.
For a minute, imagine a small office building with a large car park and that the most efficient way to give the same instructions, to as many employees as possible, is to have the employees assemble outside and the boss stand in the car park with a megaphone.
Now picture that small office block as an analogy of a typical office desktop PC:
- The people spread throughout the building represent – blocks of data on a hard drive
- The elevator represents – the hard drive head
- The space in the car park represents – the RAM
- “The boss” with the megaphone – you guessed it, the processor
Right, so back to our first sentence, more RAM equals bigger car park. “The boss” can address more people at once in his new supersize car park, or just keep groups of people nearby, ready to receive instructions because there’s plenty space for everyone.
That scenario is all very good when we’re dealing with databases and we want to process bigger chunks of data and have lots of data ready, on standby, to be accessed quickly. And lots of developers run databases on their local machines, so we want lots of RAM for this.
BUT, we’re forgetting something that developers will probably do more frequently than anything else – compile stuff! Compiling is a more granular operation that is done over lots of small blocks of data and involves lots of reading / writing at the same time. Using our analogy above, you might picture that the size of the car park becomes partly redundant for this bit – we need to address lots of small groups of people and send them back and forth between the car park and their offices. And it’s the elevator, aka hard drive, that’s going to be doing most of the work for this bit. It doesn’t matter how big your office block is (large hard drive), or how much space you have in your car park (amount of RAM). Compiling is more about how fast you can get people between the car park and their offices, e.g. read and write data to different parts of the hard disk.
So by this point we’re already agreed that we’re keeping our RAM upgrade, we need it and we’re not giving it back! BUT we’ve realised that we also want a very fast hard drive.
Now, how many of you developers out there have a faster hard drive than, lets say, the office administrator or than Mr top sales guy from the Sales department?
If you answered “no” to the question above, start watching how many cumulative minutes a day you spend waiting for your hard drive to finish some operation. Paying a small premium for a faster hard drive, such as the Western Digital VelociRaptor might pay itself back several times over in time-savings. Developers don’t use their workstations in the same way as everyone else – every core component should be upgraded to balance the system. More on how to convince “The boss” that you need an upgrade in a following post, shortly.