¿El tiempo de reloj de la CPU devuelto por tiene que ser exactamente igual entre las ejecuciones?

Tengo un gran proyecto escrito en C ++. Puede tener algunos problemas de estabilidad (es decir, tiempo de ejecución aleatorio), pero no estoy seguro de eso. Entiendo que el tiempo de ejecución, medido por el tiempo del reloj de pared puede ser diferente entre las ejecuciones, debido a la multitarea del sistema operativo. Pero no sé si es normal que un programa estable tenga un tiempo de ejecución variable medido por el tiempo de reloj de la CPU entre ejecuciones con la misma entrada. Traté de usarclock() desde time.h, y

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

Pero en ambos casos veo picos en un gráfico. Te daré un ejemplo de tales gráficos. Aquí eje Y - tiempo de ejecución, eje X - ejecuciones consecutivas de un mismo programa, en los mismos datos de entrada. Gráfico rojo - hora del reloj de pared, rojo - hora del reloj de la CPU, tomada por clock () desde time.h

Por supuesto, suponemos que nuestro programa es estable y no tiene ningún comportamiento aleatorio. Entonces, ¿es posible? La plataforma es Windows 7.

Respuestas a la pregunta(3)

Su respuesta a la pregunta