我看到最近发布的Groovy2.0包括了可选的静态编译以及其他几个附加的好处,比如可选的静态类型检查。在做了一些搜索之后,我还没有找到将Groovy的性能(使用静态编译)与Java或者Scala进行比较的任何广泛的基准测试。有没有人知道这样的性能比较?我们能假设它和Groovy++在死之前是一样的吗?如果Groovy的性能与之相当,那么对于大型的性能关键型应用程序,Groovy是一个可行的替代方案吗?
发布于 2012-07-05 21:09:57
有一些benchmarks here (尽管很难看出是怎么回事)
但是,从页面底部获取Groovy1.8.2 Fib源代码,并在Groovy2.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只推出了一周,但是它确实暗示了在这种情况下速度会有很好的提高……
发布于 2012-08-26 18:58:56
我相信java在550ms左右就可以运行这些测试。
我做了一些与Java的性能比较。对于"static ternary“和"static if”,使用@CompileStatic的Groovy的性能与使用Java的多少是相同的。对于"instance ternary“和"instance if”,它几乎是2的一个因子。参见我的blog post。
https://stackoverflow.com/questions/11344412
复制相似问题