【发布时间】:2012-02-09 21:42:29
【问题描述】:
我正在使用 UPX 压缩器来压缩我用 Delphi XE 编写的应用程序。文件大小从大约 32 Mb 到 8 Mb。
不过,我注意到的奇怪之处在于,运行压缩文件时 RAM 的占用显着增加。从 25/30 Mb 到大约 80 Mb。这是正常现象还是您应该保留的问题?在我的例子中,由于应用程序在具有多个用户的 Windows Server 2008 远程桌面模式下运行,因此系统的重量不成比例。
为什么会这样?我该如何解决这个问题?
【问题讨论】:
-
有多少用户同时运行该应用程序?如果您使用压缩器,则进程的每个实例都会消耗单独的物理内存。页面无法共享。您使用 UPX 的动机是什么?
-
我不具体了解 UPX,但至少有一些 PE 压缩器在启动时将整个图像解压缩到内存中。这与常规 PE 不同,后者根据需要将各个部分分页。
-
您确定没有链接到可执行文件的调试信息吗?这通常比压缩对您的文件大小产生更大的影响。我的一个应用程序有 17MB 有调试信息,没有调试信息不到 3 个。