A hora do relógio da CPU retornada deve ser exatamente a mesma entre as execuções?

Eu tenho grande projeto escrito em C ++. Pode haver alguns problemas de estabilidade (ou seja, tempo de execução aleatório), mas não tenho certeza. Entendo que o tempo de execução, medido pelo tempo do relógio de parede, pode ser diferente entre as execuções, devido à multitarefa do SO. Mas eu não sei, se é normal para um programa estável, ter um tempo de execução variável medido pelo tempo do clock da CPU entre execuções com a mesma entrada. Eu tentei usarclock() from time.h, e

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

Mas em ambos os casos, vejo picos em um gráfico. Vou dar um exemplo desses gráficos. Aqui o eixo Y - tempo de execução, eixo X - execuções consecutivas de um mesmo programa, nos mesmos dados de entrada. Gráfico vermelho - hora do relógio de parede, vermelho - hora da CPU, obtida por clock () de time.h

É claro que assumimos que nosso programa é estável e não possui comportamento aleatório. Então é possível? A plataforma é o Windows 7.

questionAnswers(3)

yourAnswerToTheQuestion