我正在使用UPX压缩器来压缩用Delphi XE编写的应用程序.文件大小从大约32 Mb到8 Mb.
但是,我注意到的一件奇怪的事情是,当运行压缩文件时,占用RAM会显着增加.从25/30 Mb到大约80 Mb.这是正常的还是你应该保留的问题?就我而言,由于应用程序在具有多个用户的Windows Server 2008远程桌面模式下运行,因此系统的重量不成比例.
为什么会这样?我怎么解决这个问题?
Rob*_*edy 20
这就是EXE压缩机的工作原理.它们压缩磁盘文件,而不是可执行代码.要使压缩文件再次可执行,需要将其解压缩,并将未压缩的数据存储在内存中.使用普通的非压缩EXE文件,操作系统将仅加载此刻所需的文件部分.其余的可以留在磁盘上.由于整个未压缩的应用程序都在内存中,因此您的内存使用率会更高.
此外,磁盘文件可以由多个用户共享,而包含未压缩可执行文件的内存不是共享的.运行程序的每个用户都有一个单独的未压缩程序副本.
通过压缩程序节省的26 MB磁盘空间在共享远程桌面服务器上几乎没有任何内容.不要打扰压缩文件.如果要在分发期间压缩文件以节省带宽,则将程序打包在安装程序中,该安装程序在安装时解压缩文件一次,而不是每次运行时都需要解压缩文件的EXE压缩程序.