2017-05-04 49 views
2

我正在用JMH運行微基準測試來評估不同Java算法實現的性能。然而,根據Intel CPU turbo boost運行的天氣情況,我觀察到吞吐量不一致。由於渦輪增壓是根據環境條件激活的,有時它會在一些臺架測試中激活,而不是用於其他測試。因此,僅僅因爲渦輪增壓被激活而不是因爲其更好的效率,一些結果顯示更好的吞吐量。如何避免英特爾turbo boost基準測試的副作用?

所以,我想通過註解了所有的考試與@GroupThreads(threadsNumber)避免渦輪增壓的效果和threadsNumber等於可用處理器的數量,從而希望運行全面負責所有處理器並激活整個過程中渦輪增壓基準執行。

這是一個正確的方法嗎?有沒有更可靠的選擇來避免渦輪增壓的影響?

更新:根據@Andreas answer,另一種方法是在BIOS或操作系統設置中關閉渦輪增壓。但是,由於CPU時鐘頻率可能會發生變化,我認爲這還不足以關閉它,因爲CPU速度變化也會影響基準測試。因此,可能要保持它的可靠性,強制渦輪增壓運行並將所有線程設置爲基準。

哪一個更好的方法來避免渦輪增壓的影響?

回答

1

要防止Turbo Boost,請在BIOS或操作系統設置中將其關閉。

谷歌disable turbo boost如何,取決於您的系統。

+0

由於CPU時鐘頻率可能會改變,我認爲它不足以關閉它,因爲CPU速度變化也會影響基準測試結果。所以,也許更可靠的保持它,迫使渦輪增壓和執行基準的所有物理線程。 –

+0

@MiguelGamboa Ehhhh,不是[Turbo Boost](https://en.wikipedia.org/wiki/Intel_Turbo_Boost)*特別是*時鐘頻率的動態變化?在改變CPU時鐘頻率的同時,是否存在兩種不同的機制?如果是這樣,那就把另一個關掉。唯一的方法*保證*穩定的時鐘頻率。 – Andreas