什么是JVM上运行的最快的语言

时间:2009-10-20 12:13:23

标签: jvm performance

在JVM上运行的最快的语言是什么?

Scala呢? Groovy的? JRuby的?

8 个答案:

答案 0 :(得分:13)

http://benchmarksgame.alioth.debian.org/。 Java非常快,Scala几乎一样快。 JRuby慢了10-30倍。 Groovy是slow too

答案 1 :(得分:4)

答案 2 :(得分:1)

爪哇。

但实际上,在大多数情况下,速度差异可以忽略不计。静态语言将比动态语言更快,但不是很多。

答案 3 :(得分:1)

正如安东尼所说,Java是最快的语言。

使用静态类型(Java,Scala)的语言比动态语言(Groovy,JRuby)更快。

答案 4 :(得分:1)

你要小心你要比较的东西。 除了“它取决于你正在做什么”,其他人提到它也取决于你是如何的。

例如,像Scala这样的语言可以让你自然地表达习惯用法和算法,你可能需要花更长的时间来完成Java。这并不是说你无法将Scala的表现与同样的事情相提并论 - 只是它可能成为一种语言的难看的解决方法以匹配另一种语言中的自然习语(注意我并不是说我相信Scala实际上比任何具体的Java - 我没有关于它的数据 - 除了Scala在设计时考虑了可扩展性 - 因此得名。)

换句话说,性能通常与算法有关,通常算法的选择与表达的简易性有关。因此,“使用正确的工具”适用于此 - 无论该工具是Java,Scala,JRuby还是其他任何工具(尽管我怀疑在任何情况下动态语言比静态语言更快而不是病态)。 / p>

当然,我们也可以在优化等之前讨论分析,但这并没有直接解决这个问题。

答案 5 :(得分:1)

答案:bash!?

这可能不是问题的直接答案,但是如果'fast'与启动时间有关,则bashj(具有Java支持的bash,https://sourceforge.net/projects/bashj/)提供了极好的启动时间。这是java,bash和bashj中“ Hello World”的比较。 bashj版本使用隐藏的JVM服务器,称为显示味精。

              minimum (msec)    median (msec)
bash               2                  6
bashj              7                 11
java              72                 80

使用bashj比通过Java本身从main()入口点执行Java程序更快!

这是bashj源代码:

#!/usr/bin/bashj
#!java
static void hello() {System.out.println("Hello, world !");}

#!bashj
j.hello()

对于一般的Java方法调用,bashj时间是JVM执行时间加上〜1msec

答案 6 :(得分:-1)

我认为这取决于你的意思更快,以及语言写作的表现如何。

例如,如果你正在做一些数学密集的事情,那么Scala将比Java更快。

但是,如果你避免使用java中速度慢的函数并在所有有意义的地方使用final,那么你可以让Java比Scala运行得更快,就像我最近在接受采访时所说的那样。

所以,这是一个很难回答的问题,因为人们会展示Scala或Java会更快的实例。

但是,我相信如果您不使用var,Scala通常会更快,而val则会更快。

答案 7 :(得分:-3)

任何编译为字节码的语言在带JIT的JVM上运行速度都相同。