使用 UPX 压缩原生可执行文件
Ultimate Packer for eXecutables (UPX) 是一种压缩工具,可以减小可执行文件的大小。Quarkus 可以压缩生成的原生可执行文件,以减小其大小。在以下情况下,这种压缩非常有用:
-
构建 CLI 工具,并且您想要减小磁盘占用空间,
-
构建小型容器镜像。
请注意,UPX 压缩
-
会增加您的构建时间,尤其是在您使用高压缩级别时
-
会增加应用程序的启动 RSS 使用量
系统与容器
UPX 压缩需要
-
系统
PATH
中提供upx
命令; -
或者使用容器内构建来构建原生可执行文件。
如果您的路径中提供了 upx
命令,Quarkus 将使用它。否则,如果您使用容器内构建(使用 quarkus.native.container-build=true
)构建了原生镜像,并且构建器镜像提供了 upx
命令,Quarkus 将从容器内部压缩可执行文件。
如果您不属于这些情况之一,则压缩将失败。
upx 是跨平台的。
|
配置 UPX 压缩
然后,在您的应用程序配置中,通过配置您想要的压缩级别来启用压缩
quarkus.native.compression.level=5
如果未设置压缩级别,则禁用压缩。压缩将在构建原生可执行文件后进行,并将替换该可执行文件。
额外参数
您可以使用 quarkus.native.compression.additional-args
参数将额外的参数传递给 upx,例如 --brute
或 --ultra-brute
。该值是以逗号分隔的参数列表
quarkus.native.compression.level=3
quarkus.native.compression.additional-args=--ultra-brute,-v
可以在 UPX 文档中找到完整的参数列表。