Groovy:与Java相比,多线程性能差,计算速度慢?

Fox*_*BOA 1 java comparison performance groovy

根据Groovy 的一篇文章

不幸的是,同时Groovy在运行时非常慢.作为一个为提高Groovy性能做了很多工作的人,我可以非常公开地谈论这个问题.Groovy很慢.您可以轻松地期望在Java中重写的某些Groovy计算或数据转换将快3-5倍.通常这个因素是8-12,有时甚至更高.有人可以说Java总是在我们的服务中,并且没有人使用Groovy进行计算或数据处理......但是,嘿,这正是我的观点 - 为什么我们应该仅限于脚本或处理简单的网页?

更糟糕的是,Groovy无法很好地扩展多核计算机,这意味着执行Groovy编译的代码的多个线程确实阻止了彼此的快速运行.对于许多应用来说这不是问题,但对于许多其他应用来说,它只是显示阻塞.

有人可以证明或反驳这些段落吗?

我特别关注多线程性能.

tim*_*tes 6

目前正在努力提高Groovy的速度,但应该说10次中有9次,性能不是问题.

但是,如果这是一个问题,你可以任意用Java编写的代码(容易地集成了Java类到你的Groovy代码),或者如果你想保持完全时髦,你可以考虑使用的Groovy ++它通过提高Groovy的速度使其更加静态类型化(使用一些重型推断来节省您必须自己完成所有操作,就像使用Java一样)

Groovy 1.8b4(目前处于测试阶段),还附带了与之捆绑的GPars框架.

GPars项目通过利用Java平台的强大功能和Groovy语言的灵活性,为开发人员提供了新的直观和安全的方法,可以同时,异步和分发Java或Groovy任务.

{编辑2012年7月}

Groovy 2.0有一个CompileStatic注释,你可能想要研究一下(因为现在Groovy ++还没有开发好几个月). 这个问题有一些数字......


Wan*_*tos 6

通常这个因素是8-12,有时甚至更高.有人可以说Java总是在我们的服务中,并且没有人使用Groovy进行计算或数据处理......但是,嘿,这正是我的观点 - 为什么我们应该仅限于脚本或处理简单的网页?

我们不再需要限制自己了!Groovy 1.8已经发布了!;-)

" 用于fib(42)的Groovy 1.8.x原型需要大约3.8s(比Java慢12%,比Groovy 1.0快100多倍)因此我们可能不再鼓励人们在Java中编写这样的"热点".

资料来源:http://www.wiki.jvmlangsummit.com/images/0/04/Theodorou-Faster-Groovy-1.8.pdf

现在是Groovy与Scala的表现!请检查一下:

"我对Groovy在数值计算方面的表现有多大提升印象深刻.我的项目jlab中的Groovy 1.8(http://code.google.com/p/jlabgroovy/) 有时在我的其他项目ScalaLab中胜过Scala的表现(http: //code.google.com/p/scalalab)!!"

资料来源:http://groovy.329449.n5.nabble.com/Great-improvements-in-Groovy-s-performance-for-numerical-computing-td4334768.html

对于并行处理,您可以使用已捆绑的GPars!

干杯