Mne*_*nth 8 portability jvm bytecode vm-implementation
当甲骨文通过Dalvik VM起诉Google时,很明显,如果没有Oracle的许可,你就无法实现Java VM(编辑:Matthew Flaschen指出,Oracle的说法可能无效.无论如何我们目前的情况是Oracle,威胁VM实现.).这可能成为Java的开源实现(如Apache Harmony)的死亡.
我不想讨论这起诉讼的影响或合法性.但作为一名Java程序员,我想深入研究替代方案,为每个案例做好准备.当我将编译器的创建视为一个小问题时,我的主要兴趣是替代的VM实现,其用途与JVM类似.
我正在寻找的VM应该满足一些条件:
请为我添加一些建议.
LLVM是一个非常好的优化低级虚拟机.它可以支持C和C++等语言,并且没有内置支持垃圾收集等高级功能.
VMKit是LLVM之上的Java和CLI虚拟机的实现.由于它使用Java字节码,这可能无助于专利问题.
HLVM是另一个构建在LLVM之上的有趣的高级虚拟机.它可能与避免大多数众所周知的专利有所不同,但它主要针对数值计算和函数式编程.
在动态类型方面,有Parrot.
我实际上是在为我自己设计的语言编写一个编译器和VM,但是不要指望它永远都没有完成.;-)
请记住,任何大型软件都会侵犯众多专利,重要的是它们的知名程度(以及专利所有者积极寻找侵权者的程度).当然,整个专利制度都是荒谬的,我们摆脱它会好得多.
GraalVM是 Oracle 实验室开发的一个研究项目,已在 Twitter 投入生产。我简直不敢相信自己的眼睛,竟然没有人提到这件事,这太奇怪了。无论如何,GraalVM是 java 虚拟机的一个很有前途的扩展,支持更多语言和执行模式来运行 JavaScript、Python、Ruby、R、基于 JVM 的语言以及基于 LLVM 的语言(例如 C 和 C++)等应用程序。该项目包括一个新的高性能 Java 编译器,本身称为 Graal,它可以在 HotSpot VM 上的即时配置中使用,也可以在 SubstrateVM 上的提前配置中使用。该项目的主要目标是提高java虚拟机基础语言的性能以匹配本机语言的性能。让\xe2\x80\x99s总结一下这个项目提供的新颖功能,并根据文档简要解释为什么你应该采用它。
\n\n\n\n
\n- 多语言:所有语言(甚至基于 LLVM)共享相同的 VM 及其功能。编程语言之间的零开销互操作性允许您编写多语言应用程序并为您的任务选择最佳语言
\n- 本机:使用 GraalVM 提前编译的本机映像可缩短启动时间并减少基于 JVM 的应用程序的内存占用。
\n- 可嵌入: GraalVM 可以嵌入托管应用程序和本机应用程序中。GraalVM 现有与 OpenJDK、Node.js、Oracle 数据库和 MySQL 的集成,消除了编程语言之间的隔离,并在共享运行时实现了互操作性。它可以独立运行,也可以在 OpenJDK、Node.js、Oracle 数据库或 MySQL 的上下文中运行。
\n
\n\n\n
\n- 性能: \xe2\x80\x8aGraal 基准报告显示,由于 GraalVM 执行对象分配的方式,几乎所有实现都取得了巨大的性能改进
\n
如果有人现在还不相信这是一个不错的选择,而且这是一个非常棒的项目,您可以在 \xe2\x80\x9con 上看到 Christian Thalinger 的演讲,为什么 Graal 非常适合 Twitter\xe2 \x80\x9d
\n| 归档时间: |
|
| 查看次数: |
6383 次 |
| 最近记录: |