我很早就将字节码编译成本机代码,但是这是否会引发安全性问题?例如。是不是缺少检查数组边界的运行时检查?
好的,如果您编译受信任的Java代码,它可能不会做错任何事情,但是可能还有其他情况。
答案 0 :(得分:0)
已建立的JDK中的常规Hotspot即时编译器将字节码转换为本机代码。提前编译正在做的是提前做好工作。通过向您展示Graal JIT的代码,您可以将JDK11配置为使用该代码,这是一部关于实时工作方式的精彩视频。该链接中视频中的示例代码是Java,而Graal是Java。通过提前运行编译器,您可以获得更快的启动时间和更小的内存占用。此时您可能无法像JIT编译器那样获得如此快速的代码,因为JIT编译器可以根据代码遇到的数据进行优化。提前编译器无法根据程序遇到的数据来猜测将永远不会遇到哪些代码路径。