java - 如果信息在转换为字节码的过程中丢失,是否有可能编写一个像样的 Java 优化器?

标签 java optimization

我突然想到,当您编写 C 程序时,编译器知道源平台和目标平台(因为没有更好的术语),并且可以针对其构建代码的机器进行优化。 但是在 java 中,编译器能做的最好的事情就是优化字节码,这可能很棒,但是 jvm 中仍然有一个层必须解释字节码,而且字节码在翻译方面离最终机器架构越远,需要做的工作就越多。

在我看来,字节码优化器不会那么好,因为它已经丢失了原始源代码中可用的所有语义信息(可能已经被 java 编译器的优化器屠杀了。)

那么,是否有可能使用 Java 编译器达到 C 的效率?

最佳答案

实际上,字节码 JIT 编译器在许多情况下可以超过静态编译语言的性能,因为它可以在实际执行上下文中实时评估字节码。因此,应用性能会随着持续运行而提高。

关于java - 如果信息在转换为字节码的过程中丢失,是否有可能编写一个像样的 Java 优化器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/510061/

相关文章:

java - 在具有非默认构造函数的类中如何初始化 @Autowired 对象?

java - 根据模式拆分字符串的正则表达式

c++ - C++11 move 语义是在做一些新的事情,还是只是让语义更清晰?

java - 有没有办法将一个类转换为具有特定参数的 java.lang.Class<> 泛型?

java - 允许在 Android Studio 中显示图像的按钮

java - 如何使用 for 循环保存映射中的整数

python - 使用 Gekko 最小化矩阵的范数

MySQL WHERE 子句中整数的第一个数字

java - 如何以最低价格优化购物车?

python - TensorFlow默认在线或批量训练