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

use*_*949 11 java groovy scala groovy++

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

tim*_*tes 6

这里有一些基准(虽然很难看到发生了什么)

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

Groovy(static ternary): 1623ms
Groovy(static if): 1583ms
Groovy(instance ternary): 1744ms
Groovy(instance if): 1694ms
Run Code Online (Sandbox Code Playgroud)

@groovy.transform.CompileStatic在脚本的顶部为您提供:

Groovy(static ternary): 819ms
Groovy(static if): 799ms
Groovy(instance ternary): 816ms
Groovy(instance if): 811ms
Run Code Online (Sandbox Code Playgroud)

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

  • @tim_yates这最后的评论似乎毫无疑问.我希望程序员能够在实际应用程序中体验Groovy 2.0的性能.看一下问题的最后部分. (2认同)

Oll*_*liP 5

我相信java在大约550ms内运行这些测试

我做了一些与Java的性能比较.对于"静态三元"和"静若"与@CompileStatic Groovy中的表现是有点相同,与Java.对于"实例三元"和"实例如果",它几乎是2的因子.请参阅我的博客文章.