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.