11

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

4

2 回答 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 回答