Compresión de ejecutables nativos con UPX
Ultimate Packer for eXecutables (UPX) is a compression tool reducing the size of executables. Quarkus can compress the produced native executable to reduce its size. Such compression is interesting when:
-
construir herramientas CLI, y quiere reducir la huella del disco,
-
construir imágenes de contenedores pequeños.
Tenga en cuenta que la compresión UPX:
-
aumenta el tiempo de construcción, sobre todo si se utilizan niveles de compresión elevados
-
aumenta el uso de RSS de inicio de la aplicación
Sistema vs. Contenedor
La compresión UPX requiere:
-
el comando
upx
para que esté disponible en el sistemaPATH
; -
o haber construido el ejecutable nativo utilizando una construcción en el contenedor.
If you have the upx
command available on your path, Quarkus uses it.
Otherwise, if you built the native image using an in-container build (using quarkus.native.container-build=true
) and if the builder image provides the upx
command, Quarkus compresses the executable from inside the container.
Si no está en uno de estos casos, la compresión falla.
upx es multiplataforma.
|
Configuración de la compresión UPX
A continuación, en la configuración de su aplicación, active la compresión configurando el nivel de compresión que desee:
quarkus.native.compression.level=5
If the compression level is not set, the compression is disabled. The compression will happen once the native executable is built and will replace the executable.
Nivel de compresión
El nivel de compresión va de 1 a 10:
-
1
: compresión más rápida -
9
: mejor compresión -
`10`Mejor compresión (puede ser lenta para archivos grandes)
Parámetros adicionales
You can pass extra parameter to upx, such as --brute
or --ultra-brute
using the quarkus.native.compression.additional-args
parameter.
The value is a comma-separated list of arguments:
quarkus.native.compression.level=3
quarkus.native.compression.additional-args=--ultra-brute,-v
La lista completa de parámetros se encuentra en la documentación de UPX.