任何程序"低级"在JVM上?

时间:2014-05-11 06:14:03

标签: jvm

有时我们会听到勇敢的人因为性能原因而理解和编写汇编语言,而不是使用高级语言的编译器。可以在JVM上完成相同的操作吗?我已经回顾了JVM instruction set,它在某些方面类似于汇编语言,虽然它的级别要高得多(我假设JVM的系统特定实现非常有效) )。

是否可以编写JVM指令并将它们放入Java可执行二进制文件中?

1 个答案:

答案 0 :(得分:1)

是。您可以通过asm库执行此操作。

事实上,这通常是人们在JVM之上实现非Java语言的方式,以及有多少Java元编程库可以工作。

您可能希望为相同类型的元编程功能执行此操作 - 例如,在运行时生成类,或使用InvokeDynamic指令生成您自己的方法调度规则。

使用原始Java字节码而不是编写相应的高级Java可以获得很多性能优势(JIT是您的主要性能助推器,它针对各种模式“vanilla”进行了优化Java代码生成)但它确实为您提供了使用Java表达困难,冗长或无法表达的内容的灵活性。