【发布时间】:2017-12-11 00:41:03
【问题描述】:
如果一个 TObject 被创建,它必须在最后被销毁。在开发的过程中,我遇到了正在运行的应用程序在短时间内反应很慢,我在Windows任务管理器中注意到它运行一段时间后消耗了大量的内存。 我做了一些改变,但我仍然看到很少的渐进式内存消耗。该应用程序有大约 22,000 Kb 的内存,经过反复重绘,包括创建和销毁对象,它增加到 33,000。
这是一个明确的迹象,表明我在代码中的某处没有正确释放对象,还是有其他原因导致内存泄漏?有没有一种方法可以轻松调试这个问题?
我一直非常注意以正确的方式创建和销毁对象,所以我没有看到明显的失败。
【问题讨论】:
-
不可能从这里说你是否有泄漏。在完全调试中使用 FastMM 来检测泄漏。
-
这根本不是内存泄漏的迹象。内存管理器可以只保留未使用的内存块供以后使用。所以即使你释放了所有使用过的对象,也可能会有内存管理器计划在之后使用的内存块。
标签: delphi