`

Groovy-Java性能对比

阅读更多

摘要:Groovy用@CompileStatic性能和Java一样,Script比Java慢一个数量级。 在业务方法占主要消耗时间的情况下,均无区别。

 

先说结论,如上面摘要所述,用Groovy的语法糖的同时如果苛求性能,就加@CompileStatic编译注解。

下面是用punit做的2次并发性能测试结果,第一次是执行一个简单的方法调用,第二个是模拟一个耗时的业务方法。

工程代码,请参考我的git:

http://git.oschina.net/key232323/groovy-performance-test

 

第一次:(只做计算)

[concurrent] Starting com.innohub.bench.runner.Tester

com.innohub.bench.runner.Tester

testDoCalJava() - [0.007931ms]

testGroovyInterfaceAndStatic() - [0.006531ms]

testGroovyInterface() - [0.078376ms]

testGroovyScript() - [0.099371ms]

total: 4, failures:0 (GREEN) - 919.502066ms

[concurrent] Starting com.innohub.bench.runner.Tester

com.innohub.bench.runner.Tester

testDoCalJava() - [0.006065ms]

testGroovyInterfaceAndStatic() - [0.007464ms]

testGroovyInterface() - [0.078376ms]

testGroovyScript() - [0.106368ms]

total: 4, failures:0 (GREEN) - 85.572821ms

[concurrent] Starting com.innohub.bench.runner.Tester

com.innohub.bench.runner.Tester

testDoCalJava() - [0.007931ms]

testGroovyInterfaceAndStatic() - [0.005598ms]

testGroovyInterface() - [0.079777ms]

testGroovyScript() - [0.091906ms]

total: 4, failures:0 (GREEN) - 500.078843ms

 

第二次:(Sleep 10ms模拟耗时的业务方法

[concurrent] Starting com.innohub.bench.runner.Tester

com.innohub.bench.runner.Tester

testDoCalJava() - [10053.493918ms]

testGroovyInterfaceAndStatic() - [10041.729026ms]

testGroovyInterface() - [10185.924769ms]

testGroovyScript() - [10039.974882ms]

total: 4, failures:0 (GREEN) - 41040.644815ms

[concurrent] Starting com.innohub.bench.runner.Tester

com.innohub.bench.runner.Tester

testDoCalJava() - [10058.807668ms]

testGroovyInterfaceAndStatic() - [10050.167577ms]

testGroovyInterface() - [10063.309659ms]

testGroovyScript() - [10067.116524ms]

total: 4, failures:0 (GREEN) - 40332.292666ms

[concurrent] Starting com.innohub.bench.runner.Tester

com.innohub.bench.runner.Tester

testDoCalJava() - [10028.900451ms]

testGroovyInterfaceAndStatic() - [10028.953634ms]

testGroovyInterface() - [10042.517924ms]

testGroovyScript() - [10037.078679ms]

total: 4, failures:0 (GREEN) - 40468.62882ms

分享到:
评论

相关推荐

    java、groovy、C#、Javascript性能比较

    java、groovy、C#、Javascript的运行效率到底如何? 通过实验比较,Javascript的运行效率解决java,看来基于javascript的html5前途远大。 C#的Release版的运行性能也相当高,和C++相差不大,值得推荐。 文件内部...

    实战Java虚拟机——JVM故障诊断与性能优化

    带标签的,java虚拟机中比较好的一本书,值得阅读与收藏 随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为了一个充满活力的生态圈。《实战Java虚拟机——JVM故障诊断与性能...

    Java/groovy脚本程序调用被测试应用bean

    脚本通过上下文applicationcontext获取被测试应用bean,从而可以进行接口内容获取等操作。目前该方式主要运用到性能平台脚本搭建、代码深度测试、接口测试、白盒测试等多方面。...支持Java、groovy脚本。

    JAVA上百实例源码以及开源项目源代码

    Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java...

    JAVA上百实例源码以及开源项目

    Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像、数据初始化、矩阵乘法、坐标旋转、判断是否是顺时针方向排列、鼠标按下、放开时的动作等,都可在本源码中得以体现。 Java...

    GroovyAction:通过 groovy 编写动作

    GroovyAction这个项目还是2010年,考研复习放松的时候突发奇想开始的,想用groovy替代SSH中的action层(其实service,module什么的都可以)主要也是那段时间动态语言风头比较劲,还有就是groovy的语法糖,不像java那么...

    ScriptUtils.java

    java表达式引擎fel/groovy/expression4j/java脚本引擎的性能对比

    grava-speed-test

    #Groovy 与 Java 速度测试比较。# 该测试使用简单的列表迭代和过滤。 虽然它肯定是有限的,但此测试的灵感来自将现有批处理从Java转换为Groovy遇到的真实世界场景。 现有的用Java编写的批处理程序会定期从不同数据...

    struts2经典教程

    Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如Python、Ruby和Smarttalk等)的一些起特性; Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。

    QLExpress:QLExpress是用于Java平台的功能强大,轻量级,动态的语言,旨在提高开发人员在不同业务场景中的工作效率

    2、高效执行,比较耗时的脚本编译过程可以缓存在本地机器,运行时的临时变量创建采用了缓冲池的技术,和groovy性能相当。 3、弱类型脚本语言,和groovy,javascript语法类似,虽然比强类型脚本语言要慢一些,但是使...

    java8集合源码-concept-queen:不同语言的皇后算法

    我也有兴趣比较性能。 目前该项目涵盖 Python、Perl、Ruby、PHP、C、C++、Java、Nodejs、FreeBasic、FreePascal、D、CSharp(Mono)、Scala、Groovy、Go、Kotlin、Lua、Dart 和 julia。 谁赢? 这不是 100% 清楚; ...

    Clojure-vs-Scala-Web-API:Clojure 和 Scala 实现 Web API 的比较

    Clojure 与 Scala 的高性能 Web API Clojure 和 Scala 实现 Web API 的比较。 表中的内容 TL; 博士 Scala 和 Clojure 在 JVM 上运行并竞争 Java 的替代品。 Clojure 获胜是因为: Scala 函数式 + 面向对象 + 演员 ...

    gradle_plugin_android_aspectjx:一个Android gradle插件,可以在Android项目上实现AspectJ,并且可以在Kotlin,aar和jar文件中挂钩方法

    AspectJX 2.0.0版本与旧版本之间的编译性能对比数据 下面的数据来自于同一个项目不同环境下的编译情况由于旧版本不支持Instant Run增量编译,故没有这块数据 gradle版本 android插件版本 完整版(2.0.0 / 1.1.1 ms)...

Global site tag (gtag.js) - Google Analytics