gpt4 book ai didi

delphi - 在Delphi中查找 "non-leak"内存使用问题的策略或工具?

转载 作者:行者123 更新时间:2023-12-03 14:41:13 26 4
gpt4 key购买 nike

服务器更新后,一个旧应用程序开始大量消耗内存。内存使用量似乎无限制地上升,直到程序挂起。

根据FastMM4和EurekaLog,没有内存泄漏(28字节除外),所以我假设应用程序关闭时所有内存都被释放。

是否有适合跟踪此类内存问题的工具或策略?

最佳答案

自 2012 年 9 月以来,有一种非常简单且舒适的方法来查找此类“仅运行时”内存泄漏。

FastMM4991引入了一种新方法,LogMemoryManagerStateToFile:

Added the LogMemoryManagerStateToFile call. This call logs a summary ofthe memory manager state to file: The total allocated memory, overhead,efficiency, and a breakdown of allocated memory by class and string type.This call may be useful to catch objects that do not necessarily leak, butdo linger longer than they should.

要在运行时发现泄漏,您只需要执行以下步骤

  1. 在间隔调用的位置添加对 LogMemoryManagerStateToFile('memory.log', '') 的调用
  2. 运行应用程序
  3. 使用“tail”程序(例如打开tail模式的Notepad++)打开日志文件,当文件内容发生变化时会自动刷新
  4. 观察文件的第一行,它们将包含占用最高内存量的内存分配
  5. 如果您发现某个类或内存类型的实例数量不断增加,这可能是泄漏的原因

关于delphi - 在Delphi中查找 "non-leak"内存使用问题的策略或工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7806262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com