Estoy usando el compresor UPX para comprimir mi aplicación escrita en Delphi XE. El tamaño del archivo va desde aproximadamente 32 Mb a 8 Mb.¿Por qué mi aplicación usa más memoria después de comprimirla con UPX y qué puedo hacer al respecto?
Lo extraño que noté, sin embargo, es que la ocupación de la RAM aumenta significativamente cuando se ejecuta el archivo comprimido. De 25/30 Mb va a unos 80 Mb. ¿Es esto normal o es un problema que debes tener? En mi caso, dado que la aplicación se ejecuta en el modo de escritorio remoto de Windows Server 2008 con múltiples usuarios, el sistema pesa desproporcionadamente.
¿Por qué sucede esto? ¿Como puedó resolver esté problema?
¿Cuántos usuarios ejecutan la aplicación a la vez? Cada instancia del proceso consume memoria física por separado si usa un compresor. Las páginas no pueden ser compartidas. ¿Cuál es tu motivación para usar UPX? –
No sé específicamente sobre UPX, pero al menos algunos compresores de PE descomprimen la imagen completa en la memoria en el momento de la puesta en marcha. Esto es diferente de los PE regulares donde las secciones individuales se localizan según sea necesario. –
¿Estás seguro de que no tienes información de depuración vinculada al ejecutable? Eso generalmente hace una diferencia aún mayor para su tamaño de archivo que la compresión. Una de mis aplicaciones es de 17 MB con información de depuración y menos de 3 sin ella. –