Groovy 2.0的静态编译性能如何?

时间:2012-07-05 12:32:14

标签: java scala groovy groovy++

我看到最近发布的Groovy 2.0包括可选的静态编译以及其他一些额外的好处,比如可选的静态类型检查。在做了一些搜索后,我找不到任何广泛的基准测试,将Groovy的性能(使用静态编译)与Java和Scala相比较。有谁知道任何这样的性能比较?我们可以假设它与Groovy ++在它死之前是一样的吗?如果它的性能可比,那么Groovy是否可以替代大型,性能关键的应用程序?

2 个答案:

答案 0 :(得分:6)

有一些benchmarks here(虽然很难看出发生了什么)

但是,从页面底部获取Groovy 1.8.2 Fib源代码,并在groovy 2.0中运行它会为您提供:

Groovy(static ternary): 1623ms
Groovy(static if): 1583ms
Groovy(instance ternary): 1744ms
Groovy(instance if): 1694ms

@groovy.transform.CompileStatic放在脚本的顶部会显示:

Groovy(static ternary): 819ms
Groovy(static if): 799ms
Groovy(instance ternary): 816ms
Groovy(instance if): 811ms

显然,这不是一个完整的基准测试(它只测试一件事),它不包括热身或任何东西,而Groovy 2.0只出现了一周,但它确实暗示了这种情况下的良好速度提升...

答案 1 :(得分:5)

  

我相信java会在550毫秒左右运行这些测试

我与Java进行了一些性能比较。对于使用@CompileStatic的Groovy的“静态三元”和“静态if”性能与Java有些相同。对于“实例三元”和“实例if”,它几乎是2的因子。请参阅我的blog post