我突然想到,当您编写 C 程序时,编译器知道源平台和目标平台(因为没有更好的术语),并且可以针对其构建代码的机器进行优化。 但是在 java 中,编译器能做的最好的事情就是优化字节码,这可能很棒,但是 jvm 中仍然有一个层必须解释字节码,而且字节码在翻译方面离最终机器架构越远,需要做的工作就越多。
在我看来,字节码优化器不会那么好,因为它已经丢失了原始源代码中可用的所有语义信息(可能已经被 java 编译器的优化器屠杀了。)
那么,是否有可能使用 Java 编译器达到 C 的效率?
最佳答案
实际上,字节码 JIT 编译器在许多情况下可以超过静态编译语言的性能,因为它可以在实际执行上下文中实时评估字节码。因此,应用性能会随着持续运行而提高。
关于java - 如果信息在转换为字节码的过程中丢失,是否有可能编写一个像样的 Java 优化器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/510061/