本机图像大小至少是实际 Jar 大小的两倍

Ray*_*yan 2 spring-boot graalvm graalvm-native-image

已经构建了一个native-image使用Spring Boot 3.0.1GraalVM 22.3.0. 构建的native-image大小至少是原始应用程序 jar 的两倍。

我理解如果未使用的类作为本机映像构建过程的一部分被删除,它的大小应该更小。

Pan*_*kos 7

如果您仔细查看文档你就会明白

\n
\n

GraalVM 本机映像是完整的、特定于平台的可执行文件。\n您不需要提供 Java 虚拟机来运行本机映像。

\n
\n

因此,GraalVm 本机映像包含该容器执行所需的应用程序和依赖项。如果没有本机映像,您通常只有JAR应用程序和嵌入式 tomcat。您没有在其中运行JAR或所需JREJDKJAR

\n

以上也可以从graalVm得到验证得到验证。

\n
\n

Native Image 是一种提前将 Java 代码编译为二进制 \xe2\x80\x93 本地可执行文件的技术。本机可执行文件仅包含运行时所需的代码,即应用程序类、标准库类、语言运行时以及来自 JDK 的静态链接本机代码。

\n
\n

语言运行时的情况下为javajdk100mb - 200mb 之间。graalVm 可能会减小这个大小,但不会很大。因此,本机可执行映像甚至增加了 100 Mbs。

\n