我正在使用OpenJDK microbenchmark工具JMH。構建過程創建microbenchmarks.jar
,我調用java -jar
並傳遞jar名稱和JMH參數。我應該使用'-server'選項運行JMH基準測試
我想知道我們應該使用-server
選項來運行基準嗎?爲什麼?
換句話說,我應該運行我的基準有:
java -server -jar microbenchmarks.jar ...(jmh args)
我正在使用OpenJDK microbenchmark工具JMH。構建過程創建microbenchmarks.jar
,我調用java -jar
並傳遞jar名稱和JMH參數。我應該使用'-server'選項運行JMH基準測試
我想知道我們應該使用-server
選項來運行基準嗎?爲什麼?
換句話說,我應該運行我的基準有:
java -server -jar microbenchmarks.jar ...(jmh args)
那麼,這取決於你要測量什麼。在大多數情況下,機器上的默認JVM模式是您複製普通Java應用程序遇到的相同條件後的結果。
因此,我們通常不會將-server
添加到基準測試運行中,因爲在大多數機器上人體工程學本身會隱式選擇它,請參閱Server Class Machine Detection。
這完全取決於你要的基準是什麼 - 如果你想要測量的系統將如何表現時,你應該使用該選項運行面向服務器的工作負載,使用服務器JVM特性
另請參閱 - What is JVM -server parameter?,表示-server
交換機也執行更好的JITting。
我認爲是一樣的,所有以前的微基準工具都會有類似的說法。我在JMH網站上找不到任何這樣的例子 - 所以我開始考慮是否有這個原因;)讓我們看看@Aleksey Shipilev必須說的:) – igr
請詳細說明問題,不清楚你在問什麼。你應該使用'-server'進行基準測試嗎?你應該將'-server'傳遞給JMH啓動器嗎? –
我應該將'-server'傳遞給運行microbenchmarks.jar的JVM嗎? – igr