How do I tell my boss, that I need endless cpu power to automate my daily job?

By the way, what's your setup, now in sep, 2008.

How fast disks?

How much memory?

How many cores?

How big screen?

(Ok, what the hell are you doing, you may ask. I'm working in multiple environments, vmware. Have couple of build-systems running, for compatibility tests. These build systems are automated. The setup of the build system is also. Is there an another way?)


+23  A: 

From the The Programmer's Bill of Rights:

Developers are required to run a lot of software to get their jobs done: development environments, database engines, web servers, virtual machines, and so forth. Running all this software requires a fast PC with lots of memory. The faster a developer's PC is, the faster they can cycle through debug and compile cycles. You'd be foolish to pay the extortionist prices for the extreme top of the current performance heap-- but always make sure you're buying near the top end. Outfit your developers with fast PCs that have lots of memory. Time spent staring at a progress bar is wasted time.

+2  A: 

If you are going to run virtual machines then you really need to ensure you have bags of memory, so you can allocate proper sized memory chunks to each VM, as well as several cores so they get decent performance. Three monitors is a must so you can interact with two VM's and the host machine all at the same time. This is my setup and it works very nicely. Oh and ensure you use Vista 64bit so you are not restricted by the 4GB memory limit.

Phil Wright
+1  A: 

I've a Quad core, 4gigabyte RAM, nVidia 8800, 2 monitor of 20". Hdd 500GB 10.000 RPM (fast compilation).

+9  A: 

Number 9 on the Joel Test is also relevant:

Even minor frustrations caused by using underpowered tools add up, making programmers grumpy and unhappy. And a grumpy programmer is an unproductive programmer.

Dave Webb
+1  A: 

If you are running virtual machines you'll definitely want fast HDs - I/O is the main bottleneck (i've got 4 WD 7200rpm disks in a RAID 10 - that's your best option if you want fastest performance and data replication for backup). Plenty of RAM - i've got 4GB (never needed more yet), normally running 3 VMs. Multipe-core CPU - ideal for running VMs (i've got Intel Core 2 Duo). And, of course, dual monitors.

+1  A: 

How fast disks? 2x 150GB WD Raptor

How much memory? 4 GB

How many cores? 4 (Q6600)

How big screen? 24" (1920x1200) + 20" (1600x1200)

This machine is already starting to feel slow (C++ development with one project so huge that it needs the /3GB switch to successfully link which in turn causes lots of display and other problems in XP), next I want: 2x 300GB Velociraptor and Wolfdale Quadcore with >= 2.8 GHz and Vista 64 with 8 GB.

You have my dream machine. Raptor with Q6600. What brand on the display do you have?
+1  A: 
love that xckd comic. I have it on my wall at work :)
+1  A: 

Quad core Q6600 with 4GB ram and 500GB hard drive ( to hold plenty of VM's ). Twin 24" monitors.

My "home" machine (which is also primarily a dev box) has the same CPU and ram, but with 4 times the capacity and 24" + 2 x 19" monitors. I'd basically stole the config Jeff Attwood used on Scott Handselman's machine, as mine was built not long after those series of posts. Only I grabbed the spare 19's I had around the house. 10 months later and it's still serving me well.

+1  A: 

The good thing about my slow machine is that it's quiet and has two screens. That means a lot for my productivity -- much more than a faster CPU would.

Ok, the specifications: Pentium 4, 3.2 GHz (one core!). Serial ATA-150 disk, 2 GB RAM. And two 19" screens, with a total of 2560x1024 resolution. Not much, but it does the trick.

Note that I'm not compiling stuff or running virtual machines. Yay for interpreted, platform-independent languages! :-)

Christian Davén
+1  A: 

I do a fair amount of VM work one way or another and use a HP xw6400 workstation with 2 x quadcore E5345 Xeons, 16GB and mirrored Seagate 1TB 7200.11 disks. Generally I run XP x64. Hope this helps.

+2  A: 

I'm running everything off of a MacBook Pro 15", 2.5GhZ Core 2 Duo, 7200RPM S-ATA and 2GB of RAM. I'm using a notebook solution because I do lots of development both at home and at work. My IntelliJ IDEA IDE (Java) runs very smoothly on that system. I usually don't need VMs so 2GB of RAM are sufficient.

Have you thought of upgrading to ssd? I have 7200 on my mac too.
+1  A: 

Primary dev machine, 2004-ish AMD laptop, 2GB RAM running 64 bit linux and VM's under QEMU.

Build machine core 2 duo, 4GB RAM, Intel graphics, 10k SATA HDD's.


At work, I have an HP laptop, 15" screen, single core 2.4GHz, 2GB RAM, XP Pro. Bogged down with umpteen corporate software packages designed to ensure nobody steals their code (Despite having ready access to Ethernet and USB ports). It takes me half an hour to open Visual Studio and our Solution (55 projects).

At home, I'm much better equipped. I have a Core 2 Quad, 8GB RAM, four screens (21", 19", 19", 19"; 5640x1050) - Soon to be six after an upgrade this weekend (8200x1050), Vista Ultimate x64. I also have a server rack containing two servers (SQL/Web server, file server) and dual broadband connections. My main system and sql/web server have 150GB Raptors. On my main system, the work Solution opens in ten seconds.

For portability, I have a Gateway laptop; 17" screen, Core 2 Duo, 3GB, Vista Home Premium.

Not sure if I can post links here... nobody else seems to be... Though if you visit my profile page, click the website link, and search for lab reorganization, you'll find pics.

What brand on the monitor do you recomend?
Dell's WFP line. For those who are still into CRTs, Sony Trinitron.
+2  A: 

Dev machine is an Acer Aspire Laptop, AMD 2ghz Turion, 2gb RAM, running Vista with Ubuntu server under VMWare.

But then I very rarely do any compiling myself.

eeh "But then I very rarely do any compiling myself." How does that work?
Someone else takes care of compiling.
How many times a day can you (or are you allowed to) compile ? I'm asking for this is reminding me of what I've heard of the punch card time, where you got your compile result the day after.

I've got an 8-core 64-bit box with 8GB of RAM and a 10KRPM hard drive running Vista Ultimate. Oh, and four monitors - a standard 19", one of these, one of these, and one of these. I'm spoiled.

If we weren't doing C++ development, we probably wouldn't need such kick-ass machines, but hacking our VS projects got us around a 7x speedup in build time, and that brought a full rebuild of our largest project to just under a minute. Other languages are easier to parse, so you get less benefit from the extra cores.

Ben Straub

I do development for Windows, Windows CE/Windows Mobile, Symbian, Mac OS X, AIX, Solaris and Linux. The software is an ERP/CRM package aimed at mid-sized and small companies (single-user up to 1000 concurrent users). The C++ core engine is divided into three major parts; a virtual machine for the business logic, a very fast and scalable database engine and a cross-platform user interface engine. The solution can also use SQL Server and Oracle database engines.

For this I use a MacBoox Pro 2.33GHz dual-core with 2Gb of RAM. We have a single code base, and can start remote builds on the other platforms very quickly (largely thanks to a subversion-based build system developed in-house). On my development machine I typically have Xcode, Visual Studio 2005 and SQL Server 2005 running (through Parallels Desktop). When I'm working in Visual Studio, the changes are stored in the same folder as for Xcode, making it very easy to test fixes to cross-platform bugs.

I've found that the equipment is less important than the software tools you have to support the needs of the software you're developing. I've been using Intel Macs since they were launched, and despite my current rig being significantly faster than the one I used more than a year ago, I can't remember being frustrated with performance issues. Quite often I've found myself working with AIX or Symbian issues from my Mac, while being connected over a slow GPRS line, without speed being an issue.

That said, I'm not the type of programmer that does nothing while my code is compiling. I've learned to work on other things on my task-list instead of just waiting on the computer finishing some work - multitasking is not only for silicon chips ;-)

With good tools for remote builds, remote debugging and testing, the development rig doesn't have to be a stationary monster machine. Using a laptop for development opens up a whole new world of possibilities to sit down and work on that great idea, wherever I am and whatever network connection I have available (I always carry my cell-phone with me to give me a quick way to get online).

Compared to any previous development I've been involved with, my current setup is several orders of magnitude more efficient; I can get more work done [in a given timeframe] in this setup than I've ever been able to before.

Ludvig A Norin

Mac book pro, herman miller aeron, 30-inch cinema display. Various Windows and Linux machines scattered around.

30-inch. I like. (I think) how is it? Or do you recommend dual monitor setup?

At work each developer has been allocated an 8-core blade server to run development cluster(s) on. We use vmware workstation (even on the servers; yes I know!)

I have an 8-core blade with 8G of ram. The discs are a bit on the slow side (I think < 10k rpm, raid1) but otherwise it's fine. Normally I run about 12 VMs on it and performance is adequate.

My desktop is fairly ordinary, just a dual-core box with 3G ram. But I do have two bigish screens on it (everyone has two screens, except for one guy who seems to have shunned the 2nd one despite being offered it).


P4 3.0 GHz HT, 2 GB RAM, 160 GB HD, 3x17 inch LCD, Standard $25 keyboard, Microsoft Trackball Explorer.

That is your next buy? What next to upgrade?

A simple answer: You're being paid the same to work or to sit there and wait for your machine to do whatever you asked of it. It doesn't take a lot of time saved per operation for better hardware to add up to a net savings.

My equipment: Q6600, 4gb RAM (this only because I'm not willing to go to Vista yet and XP64 is not an option. The board could hold 8gb and would if it could be used.), 3x 19" monitors. (Again, because that's what I want. They would supply whatever monitors I asked for. I see no way to arrange more or bigger monitors to use comfortably.)

Loren Pechtel
Are you happy with the Q6600? Or is it too much? I have a Dual. I like the better response time I get compared to single cpu.
I've never used anything above a Q6600 to compare. For the most part things are disk bound anyway. I was more interested in the cores than their exact speed. At the time I got it the prices shot up to go faster and I'm not one for bleeding edge stuff.
Loren Pechtel
+1  A: 

Nobody seems to be using ram disks here?

I use a pretty basic dual core DELL Optiplex 745 running 32-bit Windows XP and the stock 75 GB disk, with a ram disk (purchased from I let the IntelliJ IDE compiler caches and indexing caches (tons of small to mid-size files) and this seems quicker in my setup.

I have just ordered 8 GB of RAM and the next generation ramdisk, which supposedly can use the surplus 4 GB of memory that the 32-bit Windows cannot address. I think this will increase the overall performance.

ramdisks are generally not a good idea; let the OS cache (and use a 64-bit OS for goodness' sake!). 64-bit Vista does this aggressively, much more so than XP. Going to 8GB (for the princely sum of a hundred bucks) I saw a BIG improvement in perf!
Jeff Atwood
Hi Jeff, good to know about Vista. I'll also read your blog post 'Why Does Vista Use All My Memory?' that came up when I searched more info on that subject.However, I may be stuck with 32-bit XP (think big corporate setting), and then I guess a judiciously used RAM disk still does good?
On Linux 32bit feels more snappy than 64bit. I also use as much ram as possible. Even if the os should have solved it. It didn't. The only way to run vmware is with ramdisk. *my opinion* "next generation ramdisk"? I need to look at this. Link?
Flinkman RamdiskPlus 9 (and 8 GB of RAM) and it seems OK so far, the Java compilation + IntelliJ caches use 1.5 GB for me at present (ca 3000 Java classes). For 32 bit XP SP2: make sure machine supports PAE (see Microsoft docs)!

I'm running a Dell T7400 with 4 cores, 2 GiB RAM and 15K disks. Compiles my entire code base in under a minute.

I have dual monitors, one 1920x1200 24" and one 1280x1024 19".

I also have a refrigerator, microwave, coffee maker, water jug and supplies. Still working on a bathroom and the kitchen sink <grin>

Software Monkey
What brand are the monitors?
They're both Dells.
Software Monkey

I do my work at home, so this is my home workstation. All parts chosen individually my me:

How fast disks? One cheap OCZ Core 64GB SSD for Windows, programs and IntelliJ IDEA's caches. The source code is on a traditional 7200rpm HDD, because that SSD sucks in writing small files (such as during compiling). I'll get a fast SSD once the prices drop down still some more (for example Intel X25-M, Intel X25-E or Fusion-io ioDrive).

How much memory? 4GB. My WinXP is 32bit, so it sees only 3.5GB.

How many cores? 4 cores. Intel Core 2 Quad Q6600, overclocked from 2.4GHz to 3.0GHz. I overclocked because the unit tests of one project begun to take more than 2 seconds to run (100% CPU bound). Overclocking made them run some 20% faster. :)

How big screen? Dell 2405FPW, 24" widescreen, 1920x1200 resolution. Anything smaller would just be studid, especially since the prices have gone down (I bought this one in 2005 soon after it was released). Even a 30" screen could be possible, although I would need to reorganize my desk to have more space. I haven't tried using two screens.

Esko Luontola

2.0GHZ Intel Core 2 Duo 3GB 250 GB 15.4 inches Vista-laptop. Turion 64 X2 1.9 GHZ 2GB 160GB 15.4 inches *NIX-laptop.

First one is connected to a 22 inch monitor.

Yeah, it's my home office so I can buy whatever I want :P


2.53 GHz Core i5, 8 GB RAM, 500 GB 7200 RPM HDD, 1GB HTI RAEDON GCard, Windows 7 ultimate + Ubuntu on 15.6" 1920x1280 resolution Laptop.

That should do the trick :P