“任何人计划”;“低级别”;在JVM上?

“任何人计划”;“低级别”;在JVM上?,jvm,Jvm,有时我们会听到一些勇敢的人出于性能原因理解和编写汇编语言,而不是使用高级语言的编译器。在JVM上也可以这样做吗?我已经回顾了,它在某些方面类似于汇编语言,尽管它的级别要高得多(我假设JVM的特定于系统的实现非常高效) 比如说,是否可以编写JVM指令并将其放入Java可执行二进制文件中?是的。你可以通过图书馆来做这件事 事实上,这通常是人们在JVM上实现非Java语言的方式,以及有多少Java元编程库可以工作 您可能非常希望为相同类型的元编程功能执行此操作—例如,在运行时生成类,或者使用Invok

有时我们会听到一些勇敢的人出于性能原因理解和编写汇编语言,而不是使用高级语言的编译器。在JVM上也可以这样做吗?我已经回顾了,它在某些方面类似于汇编语言,尽管它的级别要高得多(我假设JVM的特定于系统的实现非常高效)


比如说,是否可以编写JVM指令并将其放入Java可执行二进制文件中?

是的。你可以通过图书馆来做这件事

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

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


使用原始Java字节码而不是编写相应的高级Java(JIT是主要的性能提升工具,它针对“普通”Java代码生成的各种模式进行了优化)不会带来太多性能好处,但它确实为您提供了处理困难、冗长、,或者不可能用Java表达。

()为什么会有反对票?人们在这里会问一些理论问题。例如,herre:-既然存在汇编程序,我想有些人会使用它们。“有可能,比如说,编写JVM指令并将其放入Java可执行二进制文件中吗?”显然是的!Java可执行文件只是一个文件,因此显然在编写它们时没有固有的限制。真正的问题是:为什么会有人这样做?如果他们需要那么快的速度,就不要使用Java和低级语言或汇编语言的程序。如果您使用JVM字节码编写,您会受到JVM解释器性能的限制,因此您可能会获得一些与普通Java编译程序相关的东西,但收益/开发人员成本比不会很好。@Bakuriu我认为这是一个答案。不要使用URL缩短器。您强迫读者跟随它,只是为了发现目标甚至与JVM指令集没有远程关联。