中国服务器网

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

我的32位应用程序能做什么,消耗千兆字节的物理内存?

几个月前,一位同事向我提到,我们的一个Delphi应用程序似乎占用了8GB的内存。 我告诉他了: 这是不可能的 一个32位应用程序只有一个32位的虚拟地址空间。 即使有内存泄漏,它可以消耗的最多的内存也是2GB。 之后,分配将失败(因为在虚拟地址空间中不会有空的空间)。 而在内存泄漏的情况下,虚拟页面将被换出到页面文件,释放物理RAM。 但他指出,Windows资源监视器指出,系统上可用的RAMless于1 GB。 而我们的应用程序只使用了220 MB的虚拟内存:closures它释放了8 GB的物理RAM。 所以我testing了它 我让应用程序运行了几个星期,今天我终于决定testing它。 首先我看看closures应用程序之前的内存使用情况: 工作集(RAM)是241 MB 使用的总虚拟内存: 409 MB 我使用资源监视器检查应用程序使用的内存,以及使用的总RAM: 由应用程序分配的虚拟内存: 252 MB 正在使用的物理内存: 14 GB 然后closures应用程序后的内存使用情况: 正在使用的物理内存: 6.6 GB (低7.4 GB) 我还使用Process Explorer来查看物理RAM使用前后的细分情况。 唯一的区别是,8 GB的内存真的没有提交,现在免费: | Item | Before | After | |——————————-|————|———–| | Commit Charge (K) | 15,516,388 | 7,264,420 | | […]