gpt4 book ai didi

delphi - 为什么我的应用程序在使用 UPX 压缩后会使用更多内存,我该怎么办?

转载 作者:行者123 更新时间:2023-12-03 15:03:13 28 4
gpt4 key购买 nike

我正在使用 UPX 压缩器来压缩用 Delphi XE 编写的应用程序。文件大小从大约 32 Mb 到 8 Mb。

但我注意到奇怪的事情是,运行压缩文件时,RAM 的占用显着增加。从 25/30 Mb 增加到大约 80 Mb。这是正常现象还是您应该保留的问题?就我而言,由于该应用程序在具有多个用户的 Windows Server 2008 远程桌面模式上运行,因此系统的重量不成比例。

为什么会发生这种情况?我该如何解决这个问题?

最佳答案

这就是 EXE 压缩器的工作原理。它们压缩磁盘文件,而不是可执行代码。要使压缩文件再次可执行,需要将其解压缩,并将未压缩的数据存储在内存中。对于普通的非压缩 EXE 文件,操作系统将仅加载当前需要的文件部分。其余的可以保留在磁盘上。由于整个未压缩的应用程序都在内存中,因此您的内存使用量显得更高。

此外,磁盘文件可以由多个用户共享,但包含未压缩的可执行文件的内存不共享。运行您的程序的每个用户都有一个未压缩程序的单独副本。

通过压缩程序所节省的 26 MB 磁盘空间在共享远程桌面服务器上实际上没有。不用费心压缩文件。如果您想在分发过程中压缩文件以节省带宽,请将程序打包到安装程序中,该安装程序会在安装时解压缩文件一次,而不是使用每次运行文件时都需要解压缩文件的 EXE 压缩器。

关于delphi - 为什么我的应用程序在使用 UPX 压缩后会使用更多内存,我该怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9219244/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com