已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.
四个月前关门了。
Improve this question
在JVM上运行最快的语言是什么?
Scala?Groovy?JRuby?
已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.
四个月前关门了。
Improve this question
在JVM上运行最快的语言是什么?
Scala?Groovy?JRuby?
7条答案
按热度按时间q3qa4bjr1#
请参阅the Computer Language Benchmarks Game:
Java的速度非常快。
Scala几乎同样快。
JRuby的速度要慢10-30倍。
Groovy是slow too。
gwo2fgha2#
Java语言。
实际上,在大多数情况下,速度上的差异可以忽略不计。静态语言会比动态语言快,但快不了多少。
pu3pd22g3#
正如Anthony所说,Java是最快的语言。
使用静态类型的语言(Java、Scala)比动态类型的语言(Groovy、JRuby)更快。
mznpcxlj4#
你必须小心你所比较的东西。正如其他人提到的“这取决于你用它做什么”一样,这也取决于你怎么做。
例如,像Scala这样的语言可以让您自然地表达习惯用法和算法,而在Java中可能要花更长的时间。这并不是说您在做同样的事情时无法达到Scala的性能--只是在一种语言中,为了匹配另一种语言中的自然习惯用法,这可能会成为一种丑陋的解决方案(请注意,我并不是说我相信Scala在任何具体方面都比Java快--我没有这方面的数据--只是说Scala在设计时考虑到了可伸缩性--因此得名)。
换句话说,性能通常与算法有关,而算法的选择通常与表达的方便性有关。因此,“使用合适的工具来完成工作”适用于这里--无论该工具是Java、Scala、JRuby还是其他什么工具(尽管我怀疑是否存在动态语言比静态语言更快而不病态的情况)。
当然,我们也可以讨论优化前的分析等,但这并不能直接解决这个问题。
dzhpxtsq5#
答案:bash!?
这可能不是对这个问题的直接回答,但是如果“快速”与启动时间有关,那么bashj(带有java支持的bash,https://sourceforge.net/projects/bashj/)提供了极好的启动时间。下面是java、bash和bashj的“Hello World”的比较。bashj版本使用了一个隐藏的JVM服务器,调用该服务器来显示msg。
使用bashj从main()入口点执行java程序比使用java本身要快!
下面是bashj的源代码:
对于一般的java方法调用,bashj时间是JVM执行时间加上约1毫秒
sczxawaw6#
我认为这将取决于你所说的更快是什么意思,以及语言在性能方面写得有多好。
例如,如果您要做一些数学密集型的事情,Scala将比Java更快。
但是,如果您避免使用Java中速度较慢的函数,并在所有有意义的地方使用final,您可以让Java比Scala运行得更快,这是我最近在一次采访中听到的。
因此,这是一个很难概括回答的问题,因为人们将展示Scala或Java速度更快的示例。
但是,我相信Scala通常会更快,如果您不使用
var
,而是使用val
。pbpqsu0x7#
任何编译成字节码的语言在使用JIT的JVM上都能以同样快的速度运行。