Emscripten是Mozilla的开发人员Alon Zakai所开发的一个独特LLVM后端,可以将LLVM中间码编译成JavaScript,大大简化了现有代码在Web时代的重用。
和Google Chrome尝试通过自有的Native Client在Web中利用现有C/C++库的方式不同,Mozilla寻求了一条普适性更强的解决方案。
Emscripten并非通常的LLVM后端,本身使用JavaScript写成。它可以将任何通过LLVM 前端(比如 C/C++ Clang)生成的LLVMIR中间码编译成JavaScript,从而显著降低移植现有代码库到Web环境的损耗。
目前Emscripten已经比较成熟,准备发布2.0版本。很多大型的项目已经可以使用Emscripten转换为JavaScript了,比如Python、Ruby、Lua和Doom。
根据今年5月份的演示中用Firefox的测试结果显示,通过Emscripten 1.0得出的JavaScript在未经优化的情况,在不同的测试中比gcc -O3的原始C/C++代码约慢了0.89到3.75 倍左右。Alon表示在使用了类型推测等优化后性能会有进一步提升。
Alon Zakai在LLVM邮件列表中关于Emscripten的说明。这里有一个使用Emscripten转换后的Bullet/WebGL物理引擎演示。
Emscripten是一种独特的LLVM后端,由Mozilla开发者Alon Zakai创建,能够将C/C++等语言编写的代码转换为JavaScript,便于在Web环境中使用。它不仅简化了代码的重用过程,还提供了接近原生性能的表现,尤其适用于已有大量C/C++代码库的应用程序。目前Emscripten已相当成熟,支持多种项目如Python、Ruby、Lua等的转换。
4040

被折叠的 条评论
为什么被折叠?



