使用 GBench 来测试 Groovy 2.0 的性能
使用 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 新特性之:静态类型检查
评论暂时关闭