这个要么非常简单,要么太复杂了...
在我们的应用程序中,有一个表单从数据库加载一些数据,并在网格中显示它(简单地说)。当数据被刷新时,总内存使用量会上升约50K(无疑取决于显示多少数据)。听起来像是内存泄漏,但是当我们关闭应用程序时,FastMM设置为ReportMemoryLeakOnShutDown := True,并且不报告任何异常的内存泄漏。
所以我们似乎有一个内存泡泡或袋子。每次运行它时,它都会累积更多的内存,就像一个TList不断添加新项目,但旧项目从未被删除。然后在关机过程中,所有项目都被销毁。网格中显示的行数不会增加,但幕后有很多对象列表使其工作,因此位置不确定。
我的问题是,是否有人知道一个好方法来找出应用程序中使用多少内存的哪些部分......我可以想到很多繁琐的方法来做到这一点(我正在进行中-检查我能找到的每个列表),所以我希望有人有我没有想到的技巧或技术。
提前感谢!
更新:每次刷新会使用额外的10-50K内存。用户报告最终应用程序停止响应。它确实像内存泄漏一样,但FastMM(内存管理器)没有看到任何泄漏。我将尝试一些其他内存工具...