基準測試工具 JMH 可用來比較 Java 函數的效能。透過對兩個求和數組的函數進行基準測試,發現 Java 流函數 (sumArray2) 優於原生循環函數 (sumArray1),因為它利用了並行化,從而在大型數組中表現更出色。
在編寫 Java 程式碼時,效能是關鍵考慮因素。透過對不同的函數進行基準測試,我們可以確定哪個函數在特定場景中表現最佳。
Java 微基準測試套件 (JMH) 是一個流行的函式庫,用於在 Java 中進行基準測試。它提供了一個簡單易用的 API 來建立基準測試和測量執行時間。
讓我們比較兩個在陣列上對元素求和的函數:
// 方法 1:原生循环 public static int sumArray1(int[] arr) { int sum = 0; for (int i = 0; i < arr.length; i++) { sum += arr[i]; } return sum; } // 方法 2:Java 流 public static int sumArray2(int[] arr) { return Arrays.stream(arr).sum(); }
使用JMH設定基準測試非常簡單。以下是JMH 設定程式碼的範例:
@BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) public class SumArrayBenchmark { @Benchmark public int sumArray1() { int[] arr = new int[10000]; // 填充数组 return sumArray1(arr); } @Benchmark public int sumArray2() { int[] arr = new int[10000]; // 填充数组 return sumArray2(arr); } }
要執行JMH 基準測試,請使用下列指令:
mvn clean install java -jar target/benchmarks.jar
該指令將列印基準測試的結果,顯示每個函數的執行時間。
在上面的範例中,Java 流函數 sumArray2
的效能優於原生循環函數 sumArray1
。這是因為 Java 流利用了並行化,特別是在大型數組中,效能優勢更加明顯。
透過使用 JMH 進行基準測試,我們可以輕鬆比較 Java 函數的效能並確定特定場景中哪個函數最有效。
以上是基於基準的Java函數比較的詳細內容。更多資訊請關注PHP中文網其他相關文章!