将 Java 编译为 asm.js

2022-09-02 04:41:24

asm.js即将到来。现在甚至有传言说Chrome很快就会完全支持它。

但到目前为止,它已被用于将C / C++源代码编译为JavaScript,该JavaScript将以接近本机的速度运行(取决于您如何定义接近本机...

我一直计划使用GWT将我的Java代码转换为JavaScript,但现在我想知道目前是否有一个现有的路径/过程可以将普通的Java源代码编译为ASM.JS,那会是什么?

人们可能想要的另一个原因:Java-to-ASM.js在某些Android手机上可能比Java-to-Dalvik运行得更快!


答案 1

asm.js(目前)被设计为手动管理内存分配和释放的语言的目标 - 如C / C++。它目前无法处理具有垃圾回收语义的语言,这看起来很愚蠢,因为它是JavaScript,它是一个垃圾回收运行时。

如果你真的想绕一路,通过j2c传递Java代码,然后通过emscripten传递C++输出,emscripten将编译成asm.js。

另一种可能性是使用VMKit通过LLVM编译器传递Java代码,并通过emscripten asm.js llvm后端传递Java代码。


答案 2

截至 2020 年,您可能希望转译为 Web 程序集,而不是 asm.js。这些工具目前可用:


推荐