与Java配合使用的最快运行脚本语言

4

我想知道在Java中使用的最佳(最快)脚本语言。我不太在意加载时间长短(只要加载一次),而是关注运行速度。我目前正在使用Jython(Python),但我想要更快的语言。


2
作为一个经验法则,(快速编写)!=(快速执行)。 - AK_
作为另一个经验法则,你的算法/程序的效率比语言/环境/解释器速度更重要。 - AK_
2
“很抱歉我写了这么长的一封信,但我没有时间写一封简短的。” - 帕斯卡尔... 如果他知道这句话对我们的职业有多少适用性就好了! - corsiKa
@corsiKa 和以他名字命名的语言! - Thorbjørn Ravn Andersen
5个回答

4

关于这个问题已经有很多基准测试和讨论了。 虽然我不太相信基准测试,但是排名前两的是(按运行速度排序):

  • Scala
  • Groovy++

我尝试过两种方法,它们在我的使用情况下并不相同。 Scala 比 groovy++ 快得多(再次说明:这是我的使用情况,并且在您的使用情况下可能会有所不同)。 Scala 几乎达到了本地 Java 的速度。

Groovy(非 Groovy++)、Closure 和 JRuby 都非常慢。 即使在足够长的预热后,Groovy 和 JRuby 在简单算法上运行的速度也比 Java 版本慢了大约 8 倍。

我不能保证您能得到与我相同的数字,但这是一个不错的尝试顺序。


1
+1 对我来说唯一重要的基准是在我的环境中运行我的代码并由我的愚蠢用户减速的那些。其他基准对于学术练习很好,我很高兴听到别人为了给我指导而做了什么,但归根结底,这只是一堆数字,对于我试图优化的程序毫无意义。 - corsiKa

1

Groovy是一种非常好的脚本语言,与Java非常兼容。

话虽如此,Java可以通过命令行运行任何脚本语言,或者如果您想要的话,它也可以运行任何其他程序。因此,我会更加关注它的“快速”方面,而不是Java方面。

没有任何阻止您编写C++程序并调用已编译的代码。

此外,您使用Jython/Python进行了哪些性能测试?它有多慢,以至于不能满足您的期望?它是否引起问题?也许是在Python脚本中出现了问题?


好的,执行脚本确实需要一些时间(我实际上没有记录时间长度),我可以马上为您提供一些统计数据。此外,我希望使用一种能够运行Java方法并将Java类用作变量的语言。 - Connor
1
嗯...你考虑过Java吗?它可以高效地运行方法并使用类和变量。 - corsiKa
2
不要误解我的意思,但如果您没有对代码进行过剖析分析,那么您就没有问题。您的主要目标应该是找出脚本哪一部分拖慢了速度。此外,确定您认为它应该运行的适当时间。 - corsiKa
运行此代码花费了350毫秒:http://pastebin.com/8z05m5a3。实际调用的方法并不复杂。 - Connor
ActionSender 是什么?它是否会发起网络调用?因为我可以看到在那里事务开销可能会很大。 - corsiKa
显示剩余3条评论

1
你尝试过用Java编程吗?
你可以在Java中编写一些性能关键的功能,然后将大部分代码留在你选择的脚本语言中。

0

Java自7版本开始支持在运行时进行普通编译,如果SDK在路径上,则使用javax.tools.JavaCompiler


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接