Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 提前编译(AOT)的GraalVM安全性_Java_Security_Native_Aot_Graalvm - Fatal编程技术网

Java 提前编译(AOT)的GraalVM安全性

Java 提前编译(AOT)的GraalVM安全性,java,security,native,aot,graalvm,Java,Security,Native,Aot,Graalvm,我是一位专门负责将字节码编译成本机代码的人,但它不会重新引入安全问题吗?例如,它是否缺少像数组边界检查这样的运行时检查 好的,如果您编译可信的Java代码,它可能不会做任何错误的事情,但可能还有其他情况 提前编译器没有理由不在编译代码中包含正常的运行时检查。此外,如果它不这样做,那么它就不会创建一个与常规程序相匹配的提前程序。那将是一个错误 已建立的JDK中的常规热点即时编译器将字节码转换为本机代码。提前编译所做的就是提前完成工作。这里有一个优秀的视频,通过向您展示可以配置JDK11使用的代码,

我是一位专门负责将字节码编译成本机代码的人,但它不会重新引入安全问题吗?例如,它是否缺少像数组边界检查这样的运行时检查


好的,如果您编译可信的Java代码,它可能不会做任何错误的事情,但可能还有其他情况

提前编译器没有理由不在编译代码中包含正常的运行时检查。此外,如果它不这样做,那么它就不会创建一个与常规程序相匹配的提前程序。那将是一个错误

已建立的JDK中的常规热点即时编译器将字节码转换为本机代码。提前编译所做的就是提前完成工作。这里有一个优秀的视频,通过向您展示可以配置JDK11使用的代码,介绍了实时应用程序是如何工作的


通过提前运行编译器,您可以获得更快的启动时间和更小的内存占用。此时,作为JIT编译器,您可能无法获得如此快速的代码,因为JIT编译器可以根据代码遇到的数据进行优化。提前编译器无法猜出永远不会遇到哪些代码路径

如果您想在编译为本机代码时删除安全和安全检查,是的,但为什么要这样做?此外,运行时行为将发生变化,因为某些代码可能依赖于在这种情况下抛出的异常。因此,本机代码的行为必须与常规字节码完全相同。