Originally Posted by Blameless
The relationship between components will vary with whatever you are trying to do.
Every component and every bus connecting them has a finite amount of performance or bandwidth. If one component cannot keep up with the task at hand, it's the bottleneck.
If you have a GPU setup capable of rendering 60 fps at the setting you chose, but your CPU can only do enough work (with AI, physics, or whatever) to send 40 frames to the card, you get 40 fps.
You can spot bottlenecks by altering the speed of the components in question. If you are getting 40 fps, and you change the speed of your CPU significantly in one direction or the other, but you don't gain/lose frame rate, obviously you do not have a CPU bottleneck in that task.
Good job, this is what I wanted to know, how to test for them. The general idea of a bottleneck is pretty simple, you can only process input as fast as your slowest component..
I was just curious because I was playing GTA4 and had task manager open, after I closed the game I saw that all of my cores were getting stressed, but none of them hit 100%, although my gpu was getting stressed 100%. That leads me to believe that the gpu is the slower (bottleneck) component of those 2.