Benchmarking Algoritmos / implementações vinculadas à CPU

Digamos que estou escrevendo meu próprioStringBuilder em uma linguagem compilada (por exemplo, C ++).

Qual é a melhor maneira de medir o desempenho de várias implementações? Simplesmente cronometrar algumas centenas de milhares de execuções gera resultados altamente inconsistentes: os tempos de um lote para o outro podem diferir em até 15%, tornando impossível avaliar com precisão as possíveis melhorias de desempenho que produzem ganhos de desempenho menores que iss

Eu fiz o seguinte:

Disable SpeedStepUse RDTSC para cronometrar Execute o processo com prioridade em tempo real Defina a afinidade para um único núcleo da CPU

Isso estabilizou um pouco os resultados. Alguma outra idéia?

questionAnswers(3)

yourAnswerToTheQuestion