我看到最近发布的 Groovy 2.0 包括可选的静态编译以及其他一些额外的好处,比如可选的静态类型检查。经过一番搜索,我找不到任何广泛的基准来比较 Groovy 的性能(使用静态编译)与 Java 和可能的 Scala。有谁知道任何这样的性能比较?我们可以假设它与 Groovy++ 在它死之前是一样的吗?如果它的性能相当,Groovy 是否会成为大型、性能关键型应用程序的可行替代方案?
问问题
4353 次
2 回答
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
放在@groovy.transform.CompileStatic
脚本的顶部会给你:
Groovy(static ternary): 819ms
Groovy(static if): 799ms
Groovy(instance ternary): 816ms
Groovy(instance if): 811ms
显然,这不是一个完整的基准测试(它只是测试一件事),它不包括预热或任何东西,而且 Groovy 2.0 才发布一周,但它确实暗示了在这种情况下有很好的速度改进......
于 2012-07-05T13:09:56.980 回答
5
我相信 java 在大约 550 毫秒内运行这些测试
我与 Java 做了一些性能比较。对于使用 @CompileStatic 的 Groovy 的“静态三元”和“静态 if”性能,与使用 Java 的性能有些相同。对于“instance ternary”和“instance if”,它几乎是 2 的因子。请参阅我的博客文章。
于 2012-08-26T10:58:56.390 回答