在JVM上运行最快的语言是什么[已关闭]

dtcbnfnu  于 2022-11-07  发布在  其他
关注(0)|答案(7)|浏览(82)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.

四个月前关门了。
Improve this question
在JVM上运行最快的语言是什么?
Scala?Groovy?JRuby?

q3qa4bjr

q3qa4bjr1#

请参阅the Computer Language Benchmarks Game
Java的速度非常快。
Scala几乎同样快。
JRuby的速度要慢10-30倍。
Groovy是slow too

gwo2fgha

gwo2fgha2#

Java语言。
实际上,在大多数情况下,速度上的差异可以忽略不计。静态语言会比动态语言快,但快不了多少。

pu3pd22g

pu3pd22g3#

正如Anthony所说,Java是最快的语言。
使用静态类型的语言(Java、Scala)比动态类型的语言(Groovy、JRuby)更快。

mznpcxlj

mznpcxlj4#

你必须小心你所比较的东西。正如其他人提到的“这取决于你用它做什么”一样,这也取决于你怎么做。
例如,像Scala这样的语言可以让您自然地表达习惯用法和算法,而在Java中可能要花更长的时间。这并不是说您在做同样的事情时无法达到Scala的性能--只是在一种语言中,为了匹配另一种语言中的自然习惯用法,这可能会成为一种丑陋的解决方案(请注意,我并不是说我相信Scala在任何具体方面都比Java快--我没有这方面的数据--只是说Scala在设计时考虑到了可伸缩性--因此得名)。
换句话说,性能通常与算法有关,而算法的选择通常与表达的方便性有关。因此,“使用合适的工具来完成工作”适用于这里--无论该工具是Java、Scala、JRuby还是其他什么工具(尽管我怀疑是否存在动态语言比静态语言更快而不病态的情况)。
当然,我们也可以讨论优化前的分析等,但这并不能直接解决这个问题。

dzhpxtsq

dzhpxtsq5#

答案:bash!?
这可能不是对这个问题的直接回答,但是如果“快速”与启动时间有关,那么bashj(带有java支持的bash,https://sourceforge.net/projects/bashj/)提供了极好的启动时间。下面是java、bash和bashj的“Hello World”的比较。bashj版本使用了一个隐藏的JVM服务器,调用该服务器来显示msg。

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

使用bashj从main()入口点执行java程序比使用java本身要快!
下面是bashj的源代码:


# !/usr/bin/bashj

# !java

static void hello() {System.out.println("Hello, world !");}

# !bashj

j.hello()

对于一般的java方法调用,bashj时间是JVM执行时间加上约1毫秒

sczxawaw

sczxawaw6#

我认为这将取决于你所说的更快是什么意思,以及语言在性能方面写得有多好。
例如,如果您要做一些数学密集型的事情,Scala将比Java更快。
但是,如果您避免使用Java中速度较慢的函数,并在所有有意义的地方使用final,您可以让Java比Scala运行得更快,这是我最近在一次采访中听到的。
因此,这是一个很难概括回答的问题,因为人们将展示Scala或Java速度更快的示例。
但是,我相信Scala通常会更快,如果您不使用var,而是使用val

pbpqsu0x

pbpqsu0x7#

任何编译成字节码的语言在使用JIT的JVM上都能以同样快的速度运行。

相关问题