Nearly two years ago I wrote an article about speccing my ultimate development PC. Somehow there was always something more pressing to do. But I finally took delivery of my shiny new PC this week, partly spurred on by the fact that I wanted tried and trusted Windows 7 for the OS. Also my current development PC is getting increasingly crufty after 5 years of continual use.
I emailed my requirements to the top 3 custom PC companies in the UK as rated by PC Pro magazine : Chillblast, Cyberpower and CCL:
Hi,
I’m looking for a PC for developing software. Prime requirements in order of decreasing importance:
1. reliability
2. cpu + disk speed
3. quiet
4. value for moneyHere is my wishlist of components:
-i5-3570K CPU
-an SSD (at least 128 GB) + 2 fast and reliable HDDs (7200 rpm, at least 1 TB each)
-ASUS, Gigabyte or EVGA motherboard supporting USB 3.0 and SATA/600.
-16 GB of fast RAM
-Windows 7 64 bit professional
-quiet is good, open to suggestions on sound insulation, fans and/or passive cooling
-AMD Radeon HD 6850 graphics card
-at least 2 USB ports on the front and 2 USB ports on the back (ideally more, ideally including USB 3.0)
-DVD drive
-Gigabit ethernet
-full size case
-kensington security slot, so I can lock it to the ground
-I don’t need a monitor, keyboard, mouse etc
-I don’t need WiFi
-It has to be *super reliable* – I want reliable SSD + HDDs, good quality motherboard, good quality branded power supply etc.
-target price, not more than 1,500 inc VAT, less is better obviouslyCan you build something to meet this spec or get close? Please send me the spec and your price (including UK delivery).
Both Chillblast and Cyberpower sent me quotes for a system fairly close to what I wanted within 1 working day. I then spoke to their sales people and went online to tweak their suggested systems using their web based system ‘configurators’. In the end I chose Chillblast over Cyberpower due to:
- higher rating from PC Pro readers
- cheaper for a comparable system
- better warranty
- better online configurator (I found the number of choices on the Cyberpower online configurator a bit overwhelming)
However there really wasn’t a lot in it. CCL took nearly 2 whole working days to respond to my initial email, so I discounted them as insufficiently responsive.
Following some suggestions made by the sales people I spoke to, this is the spec I ended up with:
- Chillblast Fusion Longbow
- Windows 7 Professional 64 bit
- Onboard High Definition Audio
- Corsair CX 750W 80 PLUS Bronze Certified PSU
- Sony 24x DVD-RW Drive
- Seagate Barrcuda 2TB 7200RPM Hard Disk
- AMD Radeon HD 6850 1024MB Graphics Card
- Intel 120GB 520 Series Solid State Drive
- 16GB Corsair PC3-12800 1600MHz DDR3 Memory
- Asus P8Z77-V LX Motherboard
- Akasa Venom Voodoo Ultra Quiet CPU Cooler
- Intel Core i5 3570K Processor 3.40 GHz (No Overclocking)
- Fractal Design Define R3 Low Noise Case – Black Pearl – USB 3.0 Edition
- Total price: £1089.80 + VAT (inc MSOffice Home Edition)
I take security fairly seriously. I have a motorbike style ground anchor in my office and I want my shiny new box physically locked to it. But I was told that almost no PC tower cases have a Kensington lock slot. This seems crazy to me. My current Dell tower has one and the cost of one tiny little extra slot in the chassis must be pennies. So I had to buy a lock adaptor kit. It’s not the most elegant solution, but it works fine.
I ordered the system on 02-Oct and it arrived on 22-Oct. Here are a couple of photos of the new system with the side panels off.
The PC took a few days longer than the originally advertised time to arrive. This wasn’t a big issue in my case. But I only found out it was going to be late when I emailed them after the expected completion date. It would have been a lot better if they had been more pro-active and emailed me first. Other than that I am fairly satisified with the service from Chillblast so far.
There are a few issues with the case, which aren’t really Chillblast’s fault. It looks rather lovely in its big, black, minimalist sort of way, a bit like an obelisk from ‘2001 a space Odyssey’. But the case scratches rather easily if you lay it down to change a component on my laminate floor. The side panels are also a bit fiddly to get on and off (my old Dell PC is better in this regard). Worst of all, it has rubber grommets (is that the right word?) that fall out into the case (and potentially into the fan or heat sink) if you even look at them funny. This means lying the case down to retrieve them, struggling with the side panels and more scratches. I have had to do this at least 4 times so far. It seems that they have made them of rubber that is far too soft for the job. Grrr.
How fast is the new PC? It certainly feels very snappy. I benchmarked it against my old Dell development PC (Dual Core 2.13 Ghz, 4GB RAM) building my event table planner software from scratch. This is 83k executable lines of C++ according to SourceMonitor:
Build time | Old PC | New PC |
Debug build | 6 minutes 56 seconds | 1 minute 32 seconds |
Release build | 6 minutes 23 seconds | 1 minute 28 seconds |
So it is more than 4 times faster than the old PC at its key task – building software. Admittedly it isn’t a ‘fair’ comparison of the hardware. The older machine has a different version of Visual Studio, a different OS and probably some unnecessary services running in the background. But it is the best I can do in the circumstances and I doubt a ‘fair’ test would be much different. Despite the fact that I only went for a mid-range graphics card, the new PC can also handle playing Half-Life 2 on full 1920 x 1200 resolution without any noticeable issues. Hopefully the faster build times will give a significant boost to my productivity (as long as I don’t play too much Half-Life 2).
The new PC is also eerily quiet. I would guess more than 4 times quieter than my old PC. Even when it is doing a build, all you can hear is the faint whir of a fan.
Only time will tell how reliable it is.
Dev machines are certainly lasting longer than they used to.
I’m using a 3 year old Q9550 (2.8GHz quad core) box as a dev machine at the moment. With 8GB of RAM, a 240GB SSD (Samsung 830 series) and 1TB data drive (Samsung F3) it’s certainly fast enough – e.g. it can rebuild the whole of Visual Lint (approx 360kLOC in 45 projects) in under 10 minutes (just about enough time for a cuppa, which suits me fine).
To be honest the only things that are likely to force me to replace it are a) the PSU fan is squeaky when it starts up, and b) I’d like to experiment with running code analysis tasks on a many (>= 8) core machine sometime.
Once i7 boxes with 8 physical cores (i.e. 16 HT) at a reasonable price are readily available I might even think about it.
It is such a hassle to research, buy and set-up a new PC, that you really don’t want to be doing too often. The higher spec the machine, the less frequently you need to upgrade it.
CPU development has stalled in recent years (some argue the competition has which is why Intel slowed down). My 8 core I7 I bought over 3 years ago is still going hard at anything I throw at it.
I’m the type of C++ programmer that loves to compile often to check for errors so anything other than “really fast” gets to me.
On the security issue, are you worried about data theft or just hardware theft? Personally I don’t buy expensive hardware to code on (Java always compiles fast) so I don’t worry about that but to avoid my IP falling into the wrong hands (unlikely I know) all my code for all projects is in a single truecrypt volume. That also has the advantage of being a single file to write to a dvd when I do my weekly backup to disk.
Sounds like a cool setup. I Don’t blame you for not wanting to go to Win 8 right away. I’ll be installing it in a VM at first & see how I like it.
>On the security issue, are you worried about data theft or just hardware theft?
Both. I also use Truecrypt.
When I got my first SSD I finally decided against Truecrypt because it caused significant performance drop. I understand you are not experiencing anything like it?
I use a Truecrypt volume to store sensitive data, such as code files. I don’t have the whole disk encrypted. It didn’t seem worth the performance hit to encrypt the entire disk.
Re hardware security, you’re aware Kensington locks can be easily ‘cracked’?! http://www.youtube.com/watch?v=as-CPdf-rKI
I don’t imagine thieves carry around empty toilet rolls though, although perhaps the specialists do! Back in the day they used to steal the RAM when it was expensive. Now SSDs are getting cheap they won’t bother with those either…
The Kensington lock I have is different to the one in the video and I don’t think that would work on my one. Still quite an eye opener though!
Suffice to say that the Kensington lock is not the only form of security protecting my PC/Office.
For more on laptop security locks and their failings see also:
https://successfulsoftware.net/2009/04/13/travelling-with-a-laptop/
This is think why I stick with Delphi – 1.1 mil lines in less than 40 sec on a
Intel Core2 Duo 3Ghz with 8 GB RAM and Wnidows 7 64-bit.
Is Delphi really that much faster to compile than C++? Note that I am only counting executable LOC (i.e. not headers) and I am including linking.
Delphi is very fast to compile but very slow at keeping up with the environment. They have only just added 64 bit support which has really hurt one of my competitors.
A big part of the reason C++ projects compile much, much more slowly than Delphi (which really is a speed demon, and always has been) is that the compiler has to parse declarations in header files. These can impose a *huge* overhead on the compilation of every single file – try looking at the preprocessed output from a Win32 “Hello World” app!
If the C++ 1y (i.e. the version of the C++ standard to follow C++ 11) modules proposal is adopted one of the likely impacts will be a dramatic reduction in compilation times for projects which use it.
There’s a good overview of where the proposal is on StackOverflow at http://stackoverflow.com/questions/3596147/modules-in-c11.
You might also use a ramdisk for intermediate build files. Okay, I found no measurable speed gain, but it should reduce SSD degrading in theory.
And if you use Visual Studio, try the /MP option. I think it’s still disabled by default, but greatly speeds up the compile, at least for C++.
I’m not sure degradation is that much of an issue with the latest generation of SSDs.
I use QtCreator to drive the compiles and that automatically splits compilation between multiple cores using jom.exe:
http://doc.qt.digia.com/qtcreator-2.2/creator-faq.html
Hmm, the final bill looks rather expensive. I did an upgrade less than a month ago and paid for top Core i7 / ASRock Extreme4 / RAM 16 GB / SSD 120 GB / Creative Core3D about $700 on NewEgg. Dedicated video was probably unnecessary for HL2. :)
Anyway, congrats on upgrade!
Oh, and one more performance tip: you might want to get 2x 1TB drives and then turn 1 TB + 1 TB into a striped RAID array. This should shave off quite a bit of a time from your compilation.
To play it safe, use your 2 TB drive as a daily backup.
For me the reduced reliability of striped RAID isn’t worth the performance improvement. I have RAID 1 in my old dev PC and it just eats harddisks. I’m not sure if the issue is vibration, a dodgy RAID controller or something else. But it put me off RAID.
I definitely agree on the reduced reliability – that’s why the backup drive and a proper backup strategy is a must. BTW, Windows 7 has an excellent implementation for RAID options. I would never trust my RAID to a hardware controller.
if you’re going to do stripped raid you really have to be careful about both the controller and the drives. For example I use the Intel 520’s in stripped raid and the performance is amazing!! And the reliability has been really good. But you do pay quite a bit more for these SSD’s than most of their competitors. There’s a reason ;) I use to buy cheaper SSD’s and they would fail regularly.
Also for raid, if you have more than 2 drives, you need to buy a special controller card that can handle the performance. Most motherboard raid controllers cannot handle the bandwidth beyond 2 ssd’s. And even then most cheaper motherboards will have issues and either get saturated early or have reliability issues. A good raid controller card is expensive, so if you want to save money it’s better to get a good motherboard. But they are significantly more expensive. My motherboard cost $400 alone (Asus Rampage IV).
But I will tell you, it’s worth it. The difference is nice.
My builds for a 250,000 LOC Java application which uses over 20 libraries, etc., is obfuscated, and creates 3 installers (windows 32/64 and mac os) use to take 7 minutes on my old box. On my new box (it’s now a 6 core 4.2Gz overclocked beast) with stripped raid (2x Intel 520 SSD) with 32gb of the fastest available ram, with 7 installers (3x32bit, 3x64bit, and 1 Mac OS) and several additional libraries to compile takes 1 minute and 9 seconds! The old build takes about 30-40 seconds.
Btw, running the build is the only thing that I’ve found that causes the computer to slow down at all when doing something else. The build is setup to run many parts in parallel for speed optimizations, and it’s the only time I ever see all the cores at 100% CPU! But even now, I can tell the drives still become a bottleneck for some parts when it’s not CPU bound.
There’s never enough hardware. Congrats Andy on your new massive machine! It will be well worth it. I found that I went from surfing and forgetting the build was running which caused me to waste maybe 5-20 minutes extra before I came back to check if the build was done to just waiting since it’s only a minute. In other words I wasted more time than the build as I knew the wait was going to be a while. Huge difference when working on the build and testing! You will easily get your money back.
83K lines for an event planner! That’s a hefty project Andy, do you have any bigger ones you work on or is that your biggest self made project?
PerfectTablePlan takes up pretty much all my programming effort.
I was thinking the other way, only 83k loc :) Desktop apps take a lot more code than most people think to build the UI.
Load up on Raspberry Pi’s, an SSD NAS and install DistCC on all of them?
C++ people are very stubborn and still ignoring the fact that exist pre compiled headers …
PCH can only help so much Oleg. Include files are the real problem, and one that can only be worked around until the fruits of the C++ 1x modules proposal are out in the wild.