Если вы разрабатываете x86 или x64, почему бы не использовать счетчик штампов времени: RDTSC.
Он будет более надежным, чем функция Ansi C, такая как time() или clock(), поскольку RDTSC является атомной функцией. Использование функций C для этой цели может привести к проблемам, поскольку у вас нет гарантии, что поток, который они выполняют, не будет отключен, и в результате возвращаемое им значение не будет точным описанием фактического времени выполнения, которое вы пытаетесь измерить ,
С RDTSC вы можете лучше измерить это. Вам нужно будет преобразовать количество отсчетов обратно в человекообразное время H: M: S формат, который будет зависеть от тактовой частоты процессора, но google вокруг, и я уверен, что вы найдете примеры.
Однако даже при использовании RDTSC вы будете включать время, когда ваш код был отключен от исполнения, в то время как лучшее решение, чем использование времени()/clock(), если вам нужно точное измерение, вам придется обратиться к профилировщику, который будет обрабатывать ваш код и принимать во внимание, когда ваш код на самом деле не выполняется из-за переключений контекста или чего-то еще.
Профилятор предоставляет статистическую информацию, которая не совпадает с фактическим измерением. – 2010-10-22 18:40:53