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

  

相關文章
相關標籤/搜索