详细了解应用程序RAM使用情况

时间:2013-12-11 11:08:53

标签: delphi delphi-xe3

根据进程资源管理器/任务管理器,我的应用程序的私有工作集大小约为190MB,即使没有执行特定任务,这比我预期的要多。使用FastMM我已经验证了这一点都不是传统意义上的实际内存泄漏。

我还阅读了相关的讨论going on here,建议使用FastMM的LogMemoryManagerStateToFile();。然而,输出生成状态“21299K Allocated,49086K Overhead”,其组合(70MB)比任务管理器建议的要少。

有什么方法可以找出造成巨大差异的原因,对于有15个表格的应用程序,190MB甚至可能是一个可预期的值吗?此外,有70%的开销“坏”,任何方式减少这个数字?

2 个答案:

答案 0 :(得分:1)

您可以使用Sysinternals中的VMMap来全面了解您的进程正在使用的虚拟内存地址空间。这应该可以让您解决在taks manager和FastMM之间看到的差异。

我怀疑FastMM报告甚至可以报告Mapped FileShareablePage Table等部分,而这些部分确实占据Private WS

enter image description here

答案 1 :(得分:0)

DDDebug可以为您提供有关应用中对象的内存分配的见解。您可以实时监控更改。

测试试用版或在网站上查看介绍性视频。