我看到最近发布的Groovy 2.0包括可选的静态编译以及其他一些额外的好处,比如可选的静态类型检查。在做了一些搜索之后,我找不到任何广泛的基准测试,将Groovy的性能(使用静态编译)与Java和Scala进行比较。有谁知道任何这样的性能比较?我们可以假设它与Groovy ++在它死之前是一样的吗?如果它的性能可比,那么Groovy是否可以替代大型,性能关键的应用程序?
我看到最近发布的Groovy 2.0包括可选的静态编译以及其他一些额外的好处,比如可选的静态类型检查。在做了一些搜索之后,我找不到任何广泛的基准测试,将Groovy的性能(使用静态编译)与Java和Scala进行比较。有谁知道任何这样的性能比较?我们可以假设它与Groovy ++在它死之前是一样的吗?如果它的性能可比,那么Groovy是否可以替代大型,性能关键的应用程序?
有一些 基准在这里 (虽然很难看到发生了什么)
但是,采用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只出现了一周,但它确实暗示了在这种情况下良好的速度提升......
有一些 基准在这里 (虽然很难看到发生了什么)
但是,采用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只出现了一周,但它确实暗示了在这种情况下良好的速度提升......
我相信java在大约550ms内运行这些测试
我做了一些与Java的性能比较。对于使用@CompileStatic的Groovy的“静态三元”和“静态if”性能与Java有些相同。对于“实例三元”和“实例如果”,它几乎是2的因子。见我的 博客文章。