The English version of quarkus.io is the official project site. Translated sites are community supported on a best-effort basis.

Upx

Ultimate Packer for eXecutables (UPX) es una herramienta de compresión que reduce el tamaño de los ejecutables. Quarkus puede comprimir el ejecutable nativo producido para reducir su tamaño. Esta compresión es interesante cuando:

  • 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:

  1. aumenta el tiempo de construcción, sobre todo si se utilizan niveles de compresión elevados

  2. 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 sistema PATH;

  • o haber construido el ejecutable nativo utilizando una construcción en el contenedor.

Si tiene el comando upx disponible en su ruta, Quarkus lo utiliza. De lo contrario, si construyó la imagen nativa usando una construcción dentro del contenedor (usando quarkus.native.container-build=true) y si la imagen del constructor proporciona el comando upx, Quarkus comprime el ejecutable desde dentro del contenedor.

Si no está en uno de estos casos, la compresión falla.

upx es multiplataforma.

upx can compress executables using a different architecture and OS than your host machine. For example, upx on a macOS machine can compress a Linux 64-bits executables.

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

Si el nivel de compresión no se establece, la compresión se desactiva. La compresión se producirá una vez que se construya el ejecutable nativo y sustituirá al ejecutable.

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

Puede pasar un parámetro extra a upx, como --brute o --ultra-brute utilizando el parámetro quarkus.native.compression.additional-args. El valor es una lista de argumentos separada por comas:

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.