我用不同的JDK编写了一些代码来测试性能,这里是代码
class GroovyWithJdk{
static void run(){
1000.times { "fib"(20) } //for dynamic
}
static def fib(n){
if(n<2)
return 1
def c = {x,y->fib(x)+fib(y)} //test closure
c(n-1,n-2)
}
}
println System.getProperty("java.version")
long start = System.currentTimeMillis()
GroovyWithJdk.run()
println "${System.currentTimeMillis()-start}ms"
结果如下:
1.6.0_45 6652ms
1.7.0_79 5590ms
1.8.0_20 4435ms
32位JDK
1.8.0_51 12858ms
为什么32位JDK如此之慢?