Должно ли время процессора показывать одинаковое время между прогонами?

У меня есть большой проект, написанный на C ++. Это может иметь некоторые проблемы со стабильностью (то есть случайное время выполнения), но я не уверен в этом. Я понимаю, что время выполнения, измеряемое временем настенных часов, может отличаться для разных запусков из-за многозадачности ОС. Но я не знаю, нормально ли для стабильной программы иметь различное время выполнения, измеряемое временем процессора, среди прогонов с одним и тем же вводом. Я пытался использоватьclock() от time.h, и

boost::chrono:::process_user_cpu_clock::now();

Но в обоих случаях я вижу шипы на графике. Я приведу вам пример таких графиков. Здесь ось Y - время выполнения, ось X - последовательные запуски одной и той же программы на одних и тех же входных данных. Красный график - время настенных часов, красный - время процессора, взятое clock () из time.h

Конечно, мы предполагаем, что наша программа стабильна и не имеет случайного поведения. Так возможно ли это? Платформа Windows 7.

Ответы на вопрос(3)

Ваш ответ на вопрос