我最近遇到了一个问题(请参阅我的最后一个问题),这让我仔细研究了我的 Delphi 应用程序中的内存管理。在我第一次探索之后,我有两个问题。
我已经开始使用 FastMMUsageTracker,并注意到以下内容。当我打开一个应用程序使用的文件(它还创建一个表单等)时,应用程序可用虚拟内存的变化与“FastMM4 分配”内存的变化之间存在显着差异。
首先,我对术语有点困惑:为什么会有一些 FastMM 分配的内存和一些“系统分配”(和保留)的内存?既然 FastMM 是内存管理器,那为什么系统要负责分配一些内存呢?
另外,我怎样才能获得有关哪些对象/结构已分配该内存的更多详细信息?VM 图表仅用于显示“系统分配”、“系统保留”或“FastMM 分配”的内存量,但没有链接到需要该内存的实际对象。例如,是否有可能在执行过程中获得类似于 FastMM 在关闭应用程序时生成的报告?FastMM 显然将这些信息存储在某处。
作为对我的奖励,如果人们可以推荐有关该主题的良好参考资料(书籍,网站),我将不胜感激。网络上有大量信息,但通常是针对特定案例和面向专家的。
谢谢!
PS:这不是寻找泄漏,那里没有问题,只是试图更好地理解内存管理并为未来抢占先机,因为我们的应用程序使用越来越多的内存。