4

我的 scala 应用程序需要对大型整数和双精度数组执行简单的操作,而性能是一个瓶颈。尽管我可以通过各种基准测试观察它们的结果,但我一直在努力确定某些优化何时启动(例如逃逸分析)。我很想对我的 scala 应用程序进行一些 AOT 编译,这样我就可以查看或强制执行(或实施)某些优化......或者如果可能的话编译为本机代码,这样我就可以像边界检查一样偷工减料并观察它是否有所作为。

我的问题:什么替代编译方法适用于 scala?我对 llvm、vmkit、soot、gcj 等工具感兴趣。目前谁在 scala 中成功使用了这些工具,或者这些方法目前都不兼容或维护?

4

2 回答 2

2

要回答我自己的问题,除了 JVM,Scala 没有替代后端。.NET 后端已经开发了很长时间,但它的状态尚不清楚。LLVM 后端还没有准备好使用,它的未来是什么也不清楚。

于 2012-11-15T19:45:38.530 回答
2

GCJ 可以将 JVM 类编译为本机代码。该博客描述了使用 Scala 代码完成的测试:http: //lampblogs.epfl.ch/b2evolution/blogs/index.php/2006/10/02/scala_goes_native_almost ?blog=7

于 2011-06-16T05:25:58.273 回答