views:

627

answers:

4

I have a relatively powerful dev workstation - 8 cores and 3 Gig of Ram. However, Visual Studio 2008 does not seem to take full advantage, especially during large builds. Are there any tweaks to be performed on XP VM settings etc to increase performance? I remember back in the bad old days that out of the box windows does not take best advantage of machines with lots of memory, is this still the case?

PS assume I can make no hardware changes

+1  A: 

The biggest issue I usually have when working in large projects aren't cpu or memory, but the hard drive. Get several HD's on different channels (or use SCSI for best performance) and put the output files, intermediate files, temp folder on 3 different HD's. That should make a big difference.

I know you said no hardware changes, but since you didn't write what type of HD setup you had, I just wanted to mention this.

VS will not be able to use all your 8 cpu's efficiently unless you have a really fast HD setup.

Magnus Westin
Agreed, but I cannot change the hardware, so I was wondering if I could tell XP to use more memory for a disk cache..
Frep D-Oronge
+1  A: 

Visual Studio 2010 is going to have improvements for making better use of multi-core machines without you needing to do anything. Until then you need to do some extra work yourself by updating the msbuild settings.

Read these two excellent posts that describe the process.

Builidng Projects in Paralell

Paralell build scenarios

Phil Wright
Interesting answer Phil. The first post seems to suggest that this will not work for an IDE build. Is that true?
serg10
+1  A: 

Not related to VS, but in Eclipse I remember being able to specify the core count and it would fire off a gcc process for as many cores as you specified. The linking process still has to be done on one core (until the linker actually works multithreaded).

It actually felt a lot faster (maybe 2x as fast??) with just hyper-threading. Again; I'd guess that the drives were to blame;

Never thought of splitting each process's file (source, temp, build, intermediate) onto different hard drives; but if that's the way you like it you'd actually be better creating a RAM disk (maybe 128-256mb) and use that for the intermediate files. Obviously you could keep your source files on a real disk (if you wanted); But I'd be happy leaving everything in ram and just committing back to SVN every half hour or so or making a copy out to the real disk.

The ram disk would be perfect for the temp, intermediate and build files. You can always copy the build files off the ram disk once you're happy.

The ram disk I use is the Microsoft Windows 2000 one; Its not "officially" supported but it works fine on XP and has been running without issues for the past year. It's a little annoying setting the sizes of the drive and restarting and what not but once its up and running you pretty much just treat it like a disk.

widgisoft
yeah .. ramdisk for files is the way to achieve extreme performance increases during building.
Tigraine
You cant get better than a ram disk for performance; Obviously the downside is that if you lose power you lose everything that was on there.You could set up a task to sync the files every 3-5 minutes without much performance hit (give the task a low priority so it doesn't compete with the build)
widgisoft
A: 

From what I remember, XP Pro only supported up to 2 processors, with cores falling under their definition of processor? XP Home officially only supported 1, but I know that people were able to get 2 working on it.

Brian Knoblauch
I've heard that too, but no it uses 8 OK.
Frep D-Oronge