2017-05-04 15 views
2

다른 Java 알고리즘 구현의 성능을 평가하기 위해 JMH으로 마이크로 벤치 마크를 실행 중입니다. 그러나 인텔 CPU 터보 부스트가 실행중인 날씨에 따라 일치하지 않는 처리량이 발생합니다. 터보 부스트는 환경 조건에 따라 활성화되기 때문에 때로는 일부 벤치 테스트에서는 활성화되고 다른 테스트에서는 활성화되지 않습니다. 따라서 일부 결과는 터보 부스트가 활성화 되었기 때문에 더 나은 처리량을 보여 주며 효율이 더 좋지 않기 때문이 아닙니다.벤치 마크에서 인텔 터보 부스트의 부작용을 피하는 방법은 무엇입니까?

그래서 나는 @GroupThreads(threadsNumber) 모든 내 테스트를 주석으로 터보 부스트의 영향을 피하려고하고 threadsNumber이 가능한 프로세서의 수와 동일하므로 완전 충전의 모든 프로세서를 실행 할 것으로 예상하고 전체 기간 동안 터보 부스트를 활성화 벤치 마크 실행.

올바른 방법입니까? 터보 부스트의 영향을 피하기 위해보다 신뢰할만한 대안이 있습니까?

: @Andreas answer에 따라 대체 접근법은 BIOS 또는 운영 체제 설정에서 터보 부스트를 해제하는 것입니다. 그러나 CPU 클럭 주파수가 변경 될 수 있기 때문에 CPU 속도 변화가 벤치 마크에도 영향을 미치기 때문에이 기능을 끄는 것으로 충분하지 않다고 생각합니다. 따라서, 계속 켜두면 터보 부스트를 실행하고 모든 스레드를 벤치 마크로 설정할 수 있습니다.

터보 부스트의 영향을 피하는 더 나은 방법은 어느 것입니까?

답변

1

Turbo Boost를 방지하려면 BIOS 또는 운영 체제 설정에서 끄십시오.

Google disable turbo boost은 시스템에 따라 다릅니다.

+0

CPU 클럭 주파수가 변경 될 수 있으므로 CPU 속도 변동이 벤치 마크 결과에도 영향을 미치기 때문에 CPU 클럭 주파수가 변경 될 수 있으므로 필자는이 기능을 끄는 것으로 충분하지 않다고 생각합니다. 그래서, 아마도 더 안정적이어서 터보 부스트를 강요하고 벤치 마크에서 모든 물리적 스레드를 실행합니다. –

+0

@MiguelGamboa Ehhhh, [터보 부스트] (https://en.wikipedia.org/wiki/Intel_Turbo_Boost) * 구체적으로 * 클럭 주파수의 동적 변화가 아닙니까? CPU 클럭 주파수를 변경하기 위해 동시에 두 개의 다른 메커니즘이 있습니까? 그렇다면 다른 하나도 해제하십시오. 안정된 클록 주파수를 보장하는 유일한 방법. – Andreas