My main development machine is a 4 year old Dell desktop, PC running 32 bit Windows Vista. Time for a new PC. I have been doing a bit of research, mostly by looking through back copies of PC Pro magazine (which I recommend, by the way). I am speccing it out here on my blog in the hope that I, and anyone else thinking about a new PC, can benefit from my research and (more importantly, given my limited knowledge of hardware) the assembled wisdom and experience of readers of this blog.
A system failure could lose me several days work and a lot of mental energy to sort out, so reliability is my number one requirement. After that I am interested in performance, particularly speeding up compilation and linking, as this has a significant effect on my productivity (my table planner software is now well over 100k lines of C++ code). Getting a fast machine also means it will last longer before it becomes obselete.
Form factor
Tower desktop. I don’t like using laptops for extended periods and there is plenty of space under the desk for a tower case. Having a bigger chassis means more options for upgrading and hopefully less chance of overheating. I like to have my PC physically locked to a ground anchor to reduce the possibility of theft. So the case needs to have a Kensington-compatible security slot I can attach a security cable to. Some LED bling wouldn’t hurt.
OS
Windows 7 64 bit Professional (or Ultimate is if I decide to use bitlocker drive encryption). Windows 7 is increasingly what my customers are using. 64 bit will allow me to address >4GB RAM.
As I develop for both Windows and Mac, I could use a Mac for my main development machine. But I am more familiar with Windows and its associated apps, you get more bang for your buck with a PC and I’m not keen on Apple’s authoritarian attitude to developers. So I prefer to use Windows for my main development machine and use a Mac Mini for porting.
RAM
8GB of DDR3 RAM. Maybe more, depending on cost. But I am not sure whether having more than 8GB of RAM will make much of a difference to real world performance. DDR3 memory seems to be fairly standard on high end PCs. I can’t imagine the clock speed of the memory (e.g. 1,333 MHz vs 1,600 MHz) affects development related performance much. I haven’t seen any data on this.
Storage
Possibly a 128GB Crucial RealSSD C300 SSD for storing \Windows and \Program files and a 600 GB 10,000 RPM WD Velociraptor HDD for storing everything else. SSDs seem to be increasingly the way to go for storage that is predominantly read-only and the prices are coming down. 128 GB should be ample for Windows and lots of applications. But there have been issues over the reliability and performance of some SSDs, notably those with Indilinx controllers. anandtech.com, Jeff Atwood and PC Pro all rate Crucial SSDs well. The WD Velociraptor is one of the fastest HDDs around and 600 GB is currently the biggest one you can buy. It is pricey though at around £0.30 per GB, with 7,200 RPM drives around £0.05 per GB. Especially if I buy an extra one to keep as a hot spare.
I am still making up my mind on this though. Having two separate drives means an extra possible point of failure. Also some people say that, while benchmark results are impressive, the difference in performance between SSD and fast HDDs isn’t that great in real world scenarios. I also wonder whether a 10,000 RPM HDD is going to be as reliable as a 7,200 RPM HDD, such as the Samsung Spinpoint F3. I don’t know of any independent data on HDD reliability between different makes and models. In the absense of such data I guess the next best bet is to look at how long the manufacturer warranties are. You need to be fairly confident on reliability to give a 5 year warrantly.
I am also considering encrypting the drives for extra security. This will keep my data secure in case of theft and it also means I can return a defective drive under warranty without worrying about the security of the data on it. The main alternatives are Truecrypt and Windows 7 Bitlocker. Tests show Truecrypt AES encryption adding a 5-12% performance penalty. Anecdotal reports seem to show that the difference is hardly noticeable in real world use, especially with a fast CPU. A comparison of Truecrypt and Bitlocker from April gives Bitlocker a small advantage for speed, but favours Truecrypt for its flexibility. Also Truecrypt is free, whereas Bitlocker is only available if you buy Windows 7 Ultimate.
My current PC has 2 disk HDDs in RAID1 (mirrored) configuration. This was intended to decrease the chance of data loss, but it has been a huge headache. I have had to replace one or other of the RAID1 HDDs 4 or 5 times while I have had this PC. I can only assume that RAID was responsible for this catastrophic failure rate, so I certainly won’t be going for RAID again.
Media
Any reputable make of DVD drive that can write dual layer DVDs should be fine. The 8.5 GB capacity of dual layer DVDs is useful for backups. I don’t see any need to pay a premium to get Bluray.
Motherboard
A Gigabyte or Asus motherboard with support for USB 3.0 and SATA/600. I have just bought a USB 3.0 external HDD for backup so I would like to make the most of the additional USB 3.0 performance and a fast SATA connection is necessary to get the most from a fast HDD. Gigabtye and Asus motherboards seem to do well in the PC Pro magazine tests.
Power supply
Any respectable make should be fine. If a power supply fails the power surge can wreck the whole machine, so it definitely isn’t worth risking a cheap and nasty power supply to save a few pounds.
USB ports
Lots, including some USB 3.0 ports.
Graphics card
AMD Radeon 6850. I don’t play a lot of computer games, but I want a graphics card fast enough to give me the option. I would also like to have the option of multiple monitors, so it needs to have at least 2 DVI outputs. PC Pro magazine are recommending the AMD Radeon 6850 as exellent value if you don’t need the fastest possible card.
CPU
Intel Core i5-750 (4 cores). Raw processor speed is obviously important, but you pay quite a premium to get the very fastest chip. The i5-750 seems like a good balance between price and performance. Multiple cores are useful for running VMs and compiling (apparently Visual Studio 2005 requires a tweak to use multiple cores for compilation). Quiet fans would be nice. I’m not interested in overclocking as I worry about the effect this could have on reliability.
Networking
Gigabit Ethernet.
VDU, keyboard and mouse
I will re-use my existing monitor, keyboard and mouse.
Software
The less crapware pre-installed with the OS the better.
Warranty
The longer and more comprehensive the better.
Manufacturer
I have neither the time, the inclination nor the aptitude to build a PC myself. So I will be looking for a UK company that can build a PC close to the above spec. I had a terrible experience trying to buy a media PC from gamingpc-guys.co.uk earlier this year (I had to do a chargeback to get my money back when neither PC or refund had appeared after a month), so I certainly won’t be approaching them. Thankfully they seem to have gone out of business anyway. Given the problems I have had with the current Dell and the ludicrous cost of Dell replacement parts, I won’t be going for Dell again either. UK PC manufacturers that regularly do well in PC Pro tests include:
So I will be investigating how close a system they can provide me to the above spec and for what price. Interestingly all these custom PC companies seem to have products aimed very much at gamers, not developers. Given that there are a lot of developers in the UK that seems surprising. I guess most developers get their PC bought for them by IT departments and don’t have the luxury of a custom built PC. I think these companies are missing a trick by not having a PC aimed at developers amongst their base specs.
If you had roughly £1000/$1700 to spend on a development machine, what would you choose differently from the above and why?
Our company bought us liquid cooled AlienWare gaming rigs for development. Then we added a 80 GB SSD for the OS and wiped the preinstalled software to load Win7 x64. We got 9GB ram, a 1TB 7200 RPM raid 0 that is extremely FAST (backed up daily to slower media). I think we paid about $2,000 around six months ago. These are now sold and serviced by Dell. The build quality is way better than a standard Dell. Overall, we’re all very happy.
I definitely wouldn’t risk RAID0 – where your system goes down if either HDD fails. Especially with my history of dead HDDs. I know you can reinstall from backups, but who needs that hassle?
Andy, this article about reliabilty might be interesting to you: http://www.pcworld.com/businesscenter/article/213442/solid_state_drives_no_better_than_others_survey_says.html
Apart from that: I’m very happy with my SSD. One reason is that it makes the computer incredibly silent. You might also consider 1-2GB Ram for a ram disk for compile temp files. No big speed gain, but it save the SSD a lot of writing…
Thanks. I will be avoiding Corsair RAM, Hitachi HDDs and OCZ SDDs based on that report.
Great minds think alike… :) Not much to change in your selection except that the benefits of encryption on a *desktop* might not be that critical. Also, if quietness is important to you, consider HDDs from the SAMSUNG SpinPoint T Series. As for CPU cooling, the Thermalright Ultra-120 Extreme is great. Lastly, a quality PSU for the above configuration, like the CORSAIR CMPSU-550VX 550W, is recommended.
I will bear that in mind when I decide on the PSU and and cooling. Thanks!
Some time ago I assembled my “dream development PC”.
It had:
– ASUS Premium MB (with all high-quality components, copper tubes cooling, Wi-Fi access point, etc.)
– 4-core CPU, GeminII cooler + 2x12cm super-quite fans
– Fast memory (low latency) with passive cooling
– one fast 7200rmp HDD for OS and programs and another high capacity green HDD for media files
– super effective (88%) and quality power supply unit (AcBel, it’s CoolerMaster’s OEM and Mac Pro supplier)
– Bigtower case (Thermaltake Eureka) with 2 additional 12cm coolers and Zalman MFC1 Plus cooler control unit
– Asus 8800GT (9800GT) with passive cooling
– Microsoft Natural Ergo 4000 Keyboard, wireless MS mouse, etc.
I loved it. It worked very quietly. It worked very fast. CPU stock frequency was 2.4GHz, but without any problem it worked at 3.6Ghz.
Then I bought a laptop. Lenovo ThinkPad T510 (I use IBM/Lenovo T-series laptops only for ~5 years). And you know what? The laptop completely replaced my desktop superPC. Its dockstation has DVI video out, so I can use external monitor (but almost don’t do that).
Resume:
Developers don’t need super PCs. High quality and ergonomic laptop is enough for all tasks of 99% of developers.
Moreover, I noted that I worked more efficiently with less efficient PCs :) (but not laptops). This might be strictly personal though.
If you’re still buying a desktop PC, my advices:
1. don’t spend too much time on all hardware options, everything changes very quickly.
2. consider bulding a RAID array. But only with high quality 3rd party controller (~300-600 euros)
3. buy nVidia vcard, CUDA is great. (It’s not for games)
I don’t like working on a laptop for extended periods. The ergonomics are all wrong for me and the screen is too small. RSI is a big issue, so I don’t take ergonomics lightly. Each to their own I suppose.
I can’t justify ~300-600 euros for RAID on a desktop machine.
I don’t take ergonomics lightly too:
– My KB of choice is MS Natural Ergo 4000
– My chair is a Recaro bmw leather seat, it has a plenty of adjustments, put on a custom base with soft rolls. I think I could sleep in it :)
– working table is of my design as well, it lets to use laptop with _external_ keyboard and either built-in or external display
– etc etc
Just sharing my experience with you.
BTW, organizing workspace around is similar to creating software – you have 3rd party components, but for the best result you have to design and implement something unique, instead of just mixing things created by others
I started writing a comment, but thought I’d probably hit some limit and be barred or something, so I wrote this instead, hope it helps:
http://www.rikkus.info/development-workstation-2010
Some useful info thanks. I was a bit puzzled by ‘I turn off swap immediately after install.’. Surely you can’t disable swapping to disk on a modern OS? Or did you mean something else?
On Linux you can just do not create swap partition – worked fine in past for me. On Windows (at least 2000) you can change swap size – do not remember how I did it though. Any way all these changes lead to performance degradation. Probably it is still possible to change swap size in Windows 7
I assembled a new PC few months ago, it’s Intel i5-760 overclocked to 3.15GHz from the standard 2.8GHz.
The only thing I regret is that, at that time I didn’t decide to use VirtualBox VM’s for developments (which is such a great idea!), so I installed 4GB RAM only and installed Windows 7 32-bit for software compatibility (which I haven’t had a chance to validate yet), I wish I have Win7 64-bit and more ram so that I have run several VM’s (with win7 guests) smoothly, but I haven’t find the time foran OS installation yet.
I also got the machine USB3.0 ready :)
I definitely sold on 8+ MB of RAM and a 64 version of Windows 7.
I use SSD and I’ll never go back to a regular hard drive. SSD is so much quicker and so much quieter.
I am using Vista, but I am thinking seriously of moving to Windows 7.
A MacPro. The reasons for this are:
– it just works
– much better build and engeneering quality than anything you can find with Windows machines
– looks good
– relatively quiet
And yes, a developer needs the fastest machine she can afford. I compile dozens of times a day and every second waiting is a second wasted.
Trixi
I have 2 Mac Minis. But I prefer Windows for day to day stuff and development. Its what I know best and I just don’t see it being worth the while to learn Mac OS X in detail and find and buy replacements for all the software I use on Windows. I also have issues with the cost of Mac hardware and Apple’s attitude towards developers. Also most of my customers are using Windows, not Mac. I will be sticking with Windows as my main development OS for the foreseeable future.
I second the Mac Pro. Dont forget you can run Windows as your main OS on a Mac. The OS X disk contains all the drivers.
A small but valueable addon-on for Velociraptor drive will be some heat-spreading (and silencing) enclosure, like “Scythe HIMURO” or similar one.
Ok thanks. Haven’t decided on whether to pay the premium for a 10,000 RPM HDD yet. A 7,200 RPM HDD paired with an SSD might be a better choice.
Currently my desktop contains Kingston SNV425-S2/128GB and a 2.5″ WD WD3200BJKT wrapped with Scythe Quiet Drive.
Have a decent PC silence quirk :)
I’d definitely go with an SSD for the main drive, and just archive all non-current work to a NAS or eSATA box. Whoever claims that there’s no difference between SSD and HDD in practice obviously isn’t practicing hard enough!
I’d also encourage you to consider building the box yourself. Assembling a PC is about a complicated as building flat-pack furniture, and can save you a considerable amount of money (not to mention that you can get exactly what you want instead of just what someone wants to sell you).
As someone who has built a few, the one caveat I’d add to that is it can become problematic when things go wrong unless you have enough spare parts around to diagnose the problem. If you buy from a vendor you’ll hopefully get a warranty on the entire system. Of course, you’ll get similar warranties on individual parts but this has the potential to make life difficult.
The corollary to this is if your system goes down you ship the whole damn lot back and go without for X days. If one component goes you nip off to PC world and are back up and running in an hour.
If I were getting an SSD for my system&apps drive, I’d probably just skip the velociraptor and get another larger 1TB or so drive for additional storage. Not sure what the latest and greatest is these days but I’d be more focused on reliability than speed in that case, just because you’ve already got the SSD for speed.
Of course, HDD reliability becomes somewhat less of an worry if you’re using something like Mozy and/or an external drive in a regular backup routine.
BTW, I built a gaming machine about 3.5 years ago when core 2 was king. Sometime last year I finally ended up replacing the motherboard with a Gigabyte because the original EVGA Board (NVIDIA graphics card manufacturer that was somewhat new to the mobo market at the time) kept eating my ram and had some weird problems with the LAN connection.
The Gigabyte has been rock-solid since then.
I fully support your ideology on the CPU. I’ve recently built a great part-time gamer / full-time development desktop and went for the i5-760 (pretty much a replacement for the i5-750 with a freq bump) and it certainly has all the bang one needs for such a good value part.
On the desktop vs laptop topic, I’ve just come off nearly years of a laptop as my main PC and can’t believe I went that long. Laptops really do offer the mobility but if you’re sitting at desk for 99% of the time (and at your coffee table for the other 1%) then you’re giving up the power that one could have with a desktop for the same price.
Good luck with your build.
One item to consider adding is a UPS. One thing I like about laptops is that the battery is effectively a UPS when you are plugged into the mains. With a desktop, especially one on which you depend for a living, a UPS is a great value.
I have an APC UPS. It has come in very useful when we had power blips.
I can confirm TrueCrypt performs extremely well. I don’t use it for my whole drive, instead I stick to 3-4gb virtual drives. This is plenty of room for my development environment and has another advantage: I can dismount the volume and back it up to DVD which is then safe to store anywhere as it’s encrypted. That adds a nice extra layer of secure backup beyond CVS.
I have a new PC bought last December, it’s an i5 + 16Gb Ram + Windows 7 64bit OS
initially, I considered about on board raid0 to increase the speed performance, but after did research finally give it up.