我在我的应用程序中搜索嵌入式语言。应用程序在纯scala中编写。我想在运行时添加一些功能。我有疑问,scala的嵌入速度是否比groovy嵌入式更快?
答案 0 :(得分:4)
我不会添加另一种语言,scala非常适合编写脚本。速度方面我认为scala通常比groovy更快(在shootout.alioth.debian.org上有旧的基准测试,但不知何故groovy似乎已经退出当前的基准测试?)。但是响应性不是最理想的,也就是说,正如您所知,运行用于scala REPL的“解释器”是一个可以即时编译的编译器。这为实际编译带来了一些延迟,但随后执行速度与正常编译的scala一样。在现代计算机上,你不会再注意到这种延迟了。
在scala REPL之上构建了几个小工具。使用一种语言的另一个优点可能是将符号绑定到解释器可能更容易,因为所有scala特定的东西(例如合成方法,伴随对象等)都是透明可见的。
编辑:虽然最初的帖子来自2009年,但是最近scala 2.8和groovy 1.7的评分基准也有差异,显示差异仍然存在差异:http://stronglytypedblog.blogspot.com/2009/07/java-vs-scala-vs-groovy-performance.html
答案 1 :(得分:1)
据我所知,有一些努力要实现Java API(脚本语言支持,JSR 223),这是使用语言“作为脚本语言”所必需的,但我不确定它的效果如何。
Scala总体上比Groovy更快,因为它更接近JVM可以快速执行的习语。
但Groovy实际上是JVM的 脚本语言之一。应该也有一些支持一起构建Java / Scala / Groovy文件,因此不应该产生问题。