摘要: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的运行效率到底如何? 通过实验比较,Javascript的运行效率解决java,看来基于javascript的html5前途远大。 C#的Release版的运行性能也相当高,和C++相差不大,值得推荐。 文件内部...
标题中的"eyes-selenium-java-1.42.zip"表明这是一个使用Java编程语言,并与Selenium相关的开源项目,版本为1.42。Selenium是一个广泛使用的自动化测试工具,主要用于Web应用程序的自动化测试,尤其是浏览器上的交互...
MySQL Connector/J 5.1.46版本可能包含一些关键的bug修复和性能优化,对比更早的版本,它可能对特定的MySQL服务器版本有更好的支持。然而,对于新项目,建议使用更现代的版本,因为旧版本可能不再接收安全更新,且...
- Groovy的动态特性与Java的静态特性比较 - Groovy中的类型推断 - 使用Groovy增强现有的Java代码 - Groovy与Java互操作的最佳实践 **3. Groovy Data Types and Control Structures** - **介绍**: 这一章节详细...
#### 三、服务器性能对比 - **Java Servlets**:Netty、Vert.x 和原生Servlets在性能方面表现出色,特别是在与Ruby on Rails (RoR)、Node.js等其他框架的对比中。 - **基于NIO的Servlet**:自J2SE 1.4起,Java引入...
1. **脚本语言介绍**:简述JavaScript、Groovy、JRuby等流行的Java脚本语言,比较它们的特性和用途。 2. **Java Scripting API**:详细介绍JSR 223,包括`ScriptEngine`、`ScriptEngineManager`和`ScriptContext`的...
最后,演示文稿可能包含一个实际的演示部分,展示Groovy和JRuby在真实项目中的应用,以及性能比较。结论部分会总结两者的优缺点,帮助听众决定在特定情况下应该选择哪种语言。 总的来说,Groovy和JRuby各有千秋。...
标题和描述均提到了对五种编程语言——Scala、Erlang、Groovy、Python以及它们各自的原理、比较和分析。这些语言各自拥有独特的特性和应用场景,在编程领域扮演着不同的角色。下面,我们将深入探讨每种语言的关键...
Groovy是一种基于Java平台的动态编程语言,它与Java语法高度兼容,但提供了更简洁的语法和更强大的元编程能力。在"groovy代码-groovy 表达式练习"这个主题中,我们主要探讨Groovy中的表达式及其在实际编程中的应用。...
带标签的,java虚拟机中比较好的一本书,值得阅读与收藏 随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为了一个充满活力的生态圈。《实战Java虚拟机——JVM故障诊断与性能...
- **语言特点对比**:比较了Java与Groovy两种语言的主要特点和差异,突出Groovy作为动态语言在灵活性和易用性方面的优势。 - **迁移路径指导**:为希望从Java过渡到Groovy的开发者提供了实用建议,包括学习资源推荐...
Groovy是一种基于Java平台的、动态、灵活的编程语言,常用于脚本编写和自动化任务。在这个场景下,`groovy代码-分库分表算法`可能是用来实现这种分布式数据库架构的。 首先,我们需要理解分库分表的基本原理。分库...
脚本通过上下文applicationcontext获取被测试应用bean,从而可以进行接口内容获取等操作。目前该方式主要运用到性能平台脚本搭建、代码深度测试、接口测试、白盒测试等多方面。...支持Java、groovy脚本。
然而,虽然Python在某些方面性能优异,但在性能要求极高的情况下,可能需要寻找其他的解决方案。 最后,Ruby是一种动态的面向对象编程语言,其最著名的是Ruby on Rails(Rails)框架,该框架极大地简化了Web应用的...
6. **动态类型语言支持**:Java 7引入了JSR 292,允许在Java虚拟机上运行字节码级别的动态语言,如Groovy和JRuby。 7. **改进的字符串操作**:添加了`split()`方法的限制参数,以及`join()`方法,使得字符串处理...
【标题】:“JMH简介Java开发Java经验技巧共8页.pdf.zi...总的来说,这份压缩文件提供了一个深入了解JMH,学习Java性能优化和开发技巧的机会。无论你是初学者还是有经验的开发者,都能从中获益,提升你的Java编程能力。
在Java 8之前,Scala、Groovy和Clojure等基于JVM的语言已经广泛支持Lambda表达式,使得开发者能够更简洁地处理高阶函数。Java 8的引入,标志着这个强大的工具也被正式纳入Java的世界。 Lambda表达式在JVM层面上并不...
这可能包括路由、请求处理和响应构建等方面的比较,强调函数式编程的简洁性和可组合性。 【函数式编程范式】 函数式编程范式包括: 1. **纯函数**:无副作用,只依赖输入参数,不改变外部状态。 2. **不可变性**:...
8. **性能比较**:Java通常被认为在性能上优于Ruby,尤其是对于大型系统和计算密集型任务。然而,Ruby在某些场景下,如快速原型和敏捷开发,其开发速度和代码简洁度可能弥补性能差距。 9. **语言演进**:书中可能...