是否可以直接在jvm中实现java应用程序的一部分?

我在我的大学学习了ijvm(jvm 的一个子集),它提出了一个问题:是否可以直接在 jvm 中实现 java 应用程序的一部分以提高性能?... 就像您可以在汇编中实现 C 程序的一部分一样。

如果可能,我将非常感谢展示它的代码片段。

回答

是否可以直接在 jvm 中实现 java 应用程序的一部分?

我认为您的意思是在 JVM 字节码中编程。

对的,这是可能的。但是,您不太可能通过这样做获得显着的改进。

为什么?

因为现代 JVM 1实际上将字节码编译为本机代码,而字节码到本机代码编译器通常会进行一些非常认真的优化。

所以:

  • 您对编写更好(更快)字节码的任何见解都可能是错误的。

  • 通过优化字节码,您实际上可能会干扰字节码到本机代码编译器的优化能力。

此外,JVM 字节码需要遵循一些相当严格的规则,这些规则旨在避免运行时类型错误。如果您的手写字节码违反了这些规则,它们将(应该!)在类加载时被验证器拒绝。

但是如果你想尝试,有编写字节码汇编语言的工具;请参阅有哪些 JVM 汇编程序?.


1 - JIT 编译首先在 JDK 1.2 中的主流 (Sun) Java 中得到支持。在此之前,JVM 仅解释字节码,而手动编码字节码更有可能产生影响。但在那些日子里,获得更好性能的方法是用 C 编写 Java 应用程序的性能关键部分,并通过 JNI 调用 C。


以上是是否可以直接在jvm中实现java应用程序的一部分?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>