Groovy在不一样JDK版本下的性能差别

Groovy做为一种动态语言,性能和JAVA比确定是差很多,根据网友的测试,因为测试环境,场景和编译参数的不一样,大概有差2到7倍的差距java

那么一样的Groovy,在不一样的JDK版本下,会有着怎样的差别呢?好奇试了一下bash

 

测试代码写得很是简单,以下,为了测试一些动态语言中经常使用的特性,特别用上了闭包和动态特性,这样才有意义么闭包

class GroovyWithJdk{
    static void run(){
        1000.times { "fib"(20) }  //为了动态特性
    }
    
    static def fib(n){
        if(n<2)
            return 1
            
        def c = {x,y->fib(x)+fib(y)}  //纯粹就是为了测试闭包
        c(n-1,n-2)
    }
}

println System.getProperty("java.version")

long start = System.currentTimeMillis()
GroovyWithJdk.run()
println "用时:${System.currentTimeMillis()-start}毫秒"

  

结果,让人很欣慰呀,果真越新的的JDK性能越好(固然,也是由于新JDK增长了对于动态语言的支持),很合我这样追新族的心意。性能

下面是结果:测试

/*
1.6.0_45
用时:6652毫秒

1.7.0_79
用时:5590毫秒

1.8.0_20
用时:4435毫秒

32位JDK的结果,由于我是64位机和系统,运行32位JDK时要模拟成32位的,因此效率差得有点大
1.8.0_51 
用时:12858毫秒

*/

  

 

能够看到,JDK8相比JDK6,有着差很少30%的提高blog

 

至于如何快速测试?因为GroovyConsole原本就是一个启动脚本,它是依靠JAVA_HOME来指定使用哪一个JDK版本的,因此只要在调用前先指定一下JAVA_HOME就能够了。能够三个实例一块儿运行get

set JAVA_HOME=D:\JDK7

  

相关文章
相关标签/搜索