views:

174

answers:

2

I've now saved a bit of money for the hardware upgrade. What I'd like to know, which is the easiest way to measure which part of hardware is the bottleneck for compiling and should be upgraded?

Are there any clever techniques I could use? I've looked into perfmon, but it has too many counters and isn't very helpful without exact knowledge what should be looked at.

Conditions: Home development, Windows XP Pro, Visual Studio 2008

Thanks!

+3  A: 

The question is really "what is maxed out during compilation?"

If you don't want to use perfmon, you can use something like the task monitor.

  1. Run a compile.

  2. See what's maxed out.

Did you go to 100% CPU for the whole time? Get more CPU -- faster or more cores or something.

Did you go to 100% memory for the whole time? Which number matters on the display? The only memory you can buy is "physical" memory. The only factor that matters is physical memory. The other things you see on the meter are not things you buy, they're adjustments to make to the way Windows works.

Did you go to "huge" amounts of I/O? You can't easily tell what's "huge", but you can conclude this. If you're not using memory and not using CPU, then you're using the only resource that's left -- you're I/O bound and you need a faster bus -- which usually means a whole new machine.

A faster HDD is of little or no value -- the bus clock speed is one limiting factor. The bus width is the other limiting factor. No one designs an ass-kicking I/O bus and then saddles it with junk HDD's. Usually, they design the bus that fits a specific cost target based on available HDD's.

S.Lott
Yeah but I'm having some trouble determining what's "maxed out". Only for memory there are e.g. Physical memory, Kernel memory, Shared memory, Commit charge, etc. This is exactly my question: which params are telltale in this respect.
Alex Jenter
@Alex Jenter: You can only buy physical memory, so the only number that matters is physical memory. The other numbers are tuning parameters, not hardware purchase parameters.
S.Lott
Ok with memory and CPU its clear, but how do actually determine if IO amount is huge? And why it's always a faster bus but never a faster HDD?
Alex Jenter
You can tell I/O is huge because it's the only thing left as a constraint after you've eliminated memory and CPU.
S.Lott
+1  A: 

Using the task monitor has already been suggested but the Sys Internals task monitor gives you more information than the built-in Windows task monitor:

Sys Internals task monitor

You might also want to see what other things are running on your PC which are using up memory and / or CPU processing power. It may be possible to remove or only run on demand things which are affecting performance.

Windows XP will only support 3GB of memory using a switch that you have to turn on and I seem to remember that applications need to be written to actually take this into consideration.

Richard