zoukankan      html  css  js  c++  java
  • Groovy在不同JDK版本下的性能差异

    Groovy作为一种动态语言,性能和JAVA比肯定是差不少,根据网友的测试,由于测试环境,场景和编译参数的不同,大概有差2到7倍的差距

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

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

    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%的提升

    至于如何快速测试?由于GroovyConsole本来就是一个启动脚本,它是依靠JAVA_HOME来指定使用哪个JDK版本的,所以只要在调用前先指定一下JAVA_HOME就可以了。可以三个实例一起运行

    set JAVA_HOME=D:JDK7
    

      

  • 相关阅读:
    持续交付11-构建和部署的脚本化
    腾讯云即时通讯IM 公共整合
    腾讯云应用生成 UserSig
    「USACO 2020 US Open Platinum」Exercise
    async要点
    jQuery实现textarea高度根据内容自适应
    背景图片设置透明度而不改变内容
    input type=file实现图片上传,预览以及图片删除
    vant 字体图标不显示问题
    vue项目使用mock.js
  • 原文地址:https://www.cnblogs.com/varlxj/p/5181964.html
Copyright © 2011-2022 走看看