For the last 3 years (since Mrs Rendle offered me a MacBook Pro in exchange for turning my “study” into a spare room) I’ve been doing all my development work on laptops of one sort or another. They’ve all been reasonably well-specced machines, from that 2010 MBP which I upgraded to 8GB of memory and stuck an SSD in, to the Dell XPS 14 UltraBook that killed two SSDs in the first week but has served me well since, but you just can’t spec a laptop up like a desktop. You can try, but the result is not very portable and will probably give you first-degree burns if you actually try to use it on your lap.
For a proper workstation, you still can’t beat a desktop, and since I’ve got a lot of work to do and I’ll be working at home on most of it, I decided to invest in one. Thanks to the intricacies of UK VAT regulations, I needed to spend upward of £2,000 on it, which task I set about with vim and vigour.
I didn’t want an off-the-shelf PC from Dell or HP or similar; the only component you can guarantee the provenance of in those things is the CPU, which is but a single part. In the past, I have bought components and built my own, but I didn’t really fancy that this time around, so I investigated the custom build companies in the UK and found QuietPC. Having had some very noisy self-builds in the past, the idea of a quiet PC rather appealed, and their Serenity Pro Gamer looked like an excellent starting point.
With a minimum price to aim for, I started turning up the dials until I’d passed the magic number and created my ideal PC.
Here’s what I ended up with (sparing the non-essential details):
- Core i7 4770K 3.5GHz CPU
- 32GB (4x8GB) Corsair XMS DDR3 memory
- 256GB Samsung 840 Pro SSD
- 2TB WD Caviar Green HDD
- Nvidia GTX770 OC 2GB graphics card
- Gigabyte GA-Z87X-UD4H motherboard
- Zalman LQ320 liquid CPU cooler
I had to throw on a 27” monitor to push it past £2k. Oh, and the reason for switching from the AMD GPU to the Nvidia is CUDA, obviously.
Once the thing arrived and I’d got Windows 8 Pro installed and running happily, I added a 512GB Crucial m4 SSD that I salvaged from the MacBook before it was passed down to my daughter. Now I’ve got a SATA 3 SSD system+apps drive, a SATA 3 SSD working drive, and an HDD for, you know, iTunes and Dropbox and stuff.
I also overclocked the CPU, which is why I got the liquid cooler. That’s always been a bit challenging in the past, but this new motherboard has a “CPU Upgrade” dropdown in the BIOS where you can choose from 4.2GHz up to 4.8GHz, and that’s it, it handles the details for you. I thought I’d got it stable at 4.6GHz, but then I got a BSoD running a build in VS2012 so I bumped it down to 4.5GHz to be on the safe side.
This really is primarily a work PC. I mean to play games, I really do, but I sit down and think “I’ll just hack on this code for five minutes, then I’ll play Far Cry 3.” Before you know it it’s 3am and you’ve got work in 5 hours.
So the key thing here is how does Visual Studio run? Well, it loads pretty quickly, even with R# 8 and various other plug-ins and add-ons, even when you open it by right-clicking and choosing a solution from the task-bar menu. Less than 10 seconds to load Simple.Web and start typing.
But the first time I built Simple.Data after a fresh clone from Github, I swear I thought I’d hit the wrong key. It took just over 2 seconds to build the whole solution. Using the R# test runner, it runs all 840 tests – including the 180 full SQL Server 2012 integration tests which recreate the database for each fixture – in under 7 seconds. In the past I’ve had NCrunch ignore those integration tests, but now it can run them in background, too. 9 seconds to build and run tests. It takes 71 seconds on the Dell UltraBook.
Simple.Web builds in ~3.5 seconds in Visual Studio, ~8 seconds using the Rake build. R# runs all the tests in ~6 seconds, including 30 Razor rendering tests. That takes 59 seconds on the Dell.
I can’t wait to see what it’s like with multi-threaded Roslyn builds.
Oh, and yes, it is very quiet. I can barely hear it as I type this, although when the GPU ramps up it’s the same old noisy story.
Why am I telling you this?
Now, this is all very nice for me, and of course, you’re pleased that I’m happy, but the reason I’m posting this is to once again bang on about not skimping on developer workstations. Without the expensive GPU and the monitor, this thing comes in under £1,300 (not counting VAT, which businesses don’t). Given a 2-year lifespan, that’s (hopefully a lot) less than a week’s salary for a developer, and you don’t have to be a genius to see that a 600-800% performance increase in compiling code and running tests is going to result in more than a 2% increase in productivity. And sadly, I’m willing to bet that the Dell XPS 14 UltraBook, with its 3rd-gen Core i7 mobile CPU and budget SSD, is still better than what a lot of you reading this are given to work with.
So maybe forward this post to whoever is in charge of IT procurement, as an example of some concrete numbers. Here they are again for reference:
|Task||Slow PC||Fast PC|
|Build & Test Simple.Data||71 seconds||9 seconds|
|Build & Test Simple.Web||59 seconds||9.5 seconds|
P.S. 32GB? Really?
Two words: virtual machines. VMs for running Linux for testing Mono builds. VMs for running databases (and other things) that you don’t want installed on the main PC. VMs for testing web sites in old versions of Internet Explorer. Azure emulators, mobile device emulators. Yes, 32GB, really.
I have not received any consideration from QuietPC in exchange for writing this post, and I won’t profit in any way if you buy a system from them.