将scala转换为本机二进制文件

时间:2016-03-23 06:34:25

标签: scala native gcj

将scala(或字节码)转换为本机二进制文件以提高性能的最佳方法是什么

2 个答案:

答案 0 :(得分:5)

此时我看到两种解决方案将jvm字节码转换为自包含的原生二进制文件:

  • Avian - 具有AOT功能的轻量级嵌入式JVM
  • Excelsior JET - 商业Java原生编译器

两者都应与Scala兼容。

据我所知,scala没有直接的本机编译器。有一些项目,如Scala LLVM,但它们更多的是研究和概念证明,而不是准备使用工具

答案 1 :(得分:0)

虽然还不是一个功能齐全的工具,scala-native项目开始变得可用,虽然它还处于早期阶段,但它正在积极开发中,并且在本月变得更有能力。它基于LLVM和clang,并且如果您依赖的库是在早期阶段实现的库,则会将您的scala源编译为二进制文件。 (它还没有在Windows或cygwin中工作,尽管它在WSL环境中有效。)

性能是否提高是一个单独的问题,尽管大多数程序可能会更快启动。

这是指向User's Guide

的链接

创建自己的项目:Minimal sbt project

最大的限制是到目前为止只实现了java和scala标准库的一部分,因此您需要限制自己当前可用的内容,而不是每个项目都是可行的如果你限制自己100%scala。此外,文档正在进行中。

作为测试,我创建了一个用于处理文本文件的命令行工具,我终于可以让它工作了,虽然我确实花了一些时间来弄清楚如何完成各种事情,主要是如何生活使用可用的库。如果有必要,你也可以链接到C / C ++库,虽然我不需要为我的小项目。