With these thing I think it's best to use a comparison command. So instead of timing a block of instructions, you would time a control, then the command, and compare all the command results with your control result. It makes sense to go for a common command in whatever area. If you were benchmarking 2D, I would get he elapsed time to clear the screen, then check other 2D commands, using the clear screen time as the control, so you would calculate everything as a multiplier of the control time. By doing it that way, as long as you have chosen a good control command your results should be more indicative of other PC's. For instance if you got a result of 0.05 for drawing a dot on the screen with clearing the screen as a control, you know that you can draw 20 dots per screen clear. But if you ran it on a machine that is twice as slow, or twice as fast, you would see that most of the time any PC would give similar results.
It depends what you are benchmarking for - you either want to find the speed of the PC hardware, the speed of the language your using, or a speed comparison of the commands being run. I personally would do it this way if I was looking to optimize code or qualify new coding techniques. Comparing whole techniques even - I'd make a function for each technique, like comparing using SQRT or vectors to find distances.
My point is though that with this technique, it may not matter how well the PC is running as long as it's consistent, if your PC was running at half speed, it would take twice as long to clear the screen and twice as long to draw a dot, so the results would be the same, and still be valid.