歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

使用 GBench 來測試 Groovy 2.0 的性能

Groovy 2.0 剛剛發布沒多久,該版本包含很多新特性,諸如靜態編譯的特性對性能改進非常明顯。

我使用 Groovy 有很多年了,一直耿耿於懷的是 Groovy 缺少 JVM 中的靜態編譯。因此 Groovy 代碼在性能上完全無法跟純 Java 代碼相比。這也是限制 Groovy 在很多對性能要求較高實際項目中的應用。

所以當 Groovy 2.0 發布,我就注意到了新的靜態代碼編譯的新特性,然後我決定對這個特性進行性能上的測試,剛好我前幾天發現了一個很棒的 Groovy 性能測試工具 GBench,可很方便的編寫性能測試。

這裡是使用 GBench 對動態和靜態 Groovy 代碼進行性能比較的代碼:

@Grab('com.googlecode.gbench:gbench:0.3.0-groovy-2.0')
import gbench.BenchmarkBuilder
import groovy.transform.CompileStatic
 
int fib(int n) {
    if (n < 2) return n
    return fib(n - 1) + fib(n - 2)
}
 
@CompileStatic
int fib2(int n) {
    if (n < 2) return n
    return fib2(n - 1) + fib2(n - 2)
}
 
new BenchmarkBuilder().run {
    int n = 20
    "Normal Version" { fib n }
    "@CompileStatic Version" { fib2 n }
}.prettyPrint()

你可以使用 Groovy Console 來執行上面代碼,結果如下:

從上圖執行結果我們可以看到靜態代碼版本的 fibonacci 函數執行速度是動態代碼版本的 3 倍。

關於 Groovy 2.0 的靜態代碼編譯和代碼檢查請看:Groovy 2.0 新特性之:靜態類型檢查

Copyright © Linux教程網 All Rights Reserved