Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Easiest way to determine compilation performance hardware bottleneck on single PC?

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!

like image 766
Alex Jenter Avatar asked Dec 18 '22 07:12

Alex Jenter


2 Answers

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.

like image 50
S.Lott Avatar answered Jan 11 '23 04:01

S.Lott


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.

Garbage. Modern HDDs are slow compared to the I/O buses they are connected to. Name a single HDD that can max out a SATA 2 interface (and that is even a generation old now) for random IOPS... A hard drive is lucky to hit 10MB/s when the bus is capable of around 280MB/s. E.g. http://www.anandtech.com/show/2948/3. Even there the SSDs are only hitting 50MB/s. It's clear the IOPs are NOT the bottleneck otherwise the HDD would do just as much as the SSDs.

I've never seen a computer IOPs bound rather than HDD bound. It doesn't happen.

like image 21
SamCPP Avatar answered Jan 11 '23 04:01

SamCPP