【发布时间】:2013-03-15 09:15:28
【问题描述】:
是否可以在delphi中检索单个组件使用的内存量?
我正在从 Internet 下载简单的字符串,我发现在下载过程结束时内存使用量高达 1 GB,但是当我查看包含我下载的所有内容的保存文件时,只有在千字节范围内,显然组件发生了一些事情,即使我销毁了它们。
例子:
编辑:
procedure TForm1.OnCreate(Sender: TObject);
var list: TStringList;
begin
list:=TStringList.Create;
list.LoadFromFile('10MB_of_Data.txt');
list.destroy;
end;
我如何知道作为 TStringList 的“列表”正在使用 10 MB 的内存空间?
谢谢。
【问题讨论】:
-
我猜您想要此信息用于调试目的? (看起来该组件确实存在一些内存问题......)我猜你已经知道诸如全局
ReportMemoryLeaksOnShutdown变量之类的东西? -
有趣,如何开启?
-
Ken:“InstanceSize 不是你想要的”,Xaid:“我试过 InstanceSize,但它不是我想要的。”
-
请展示一个完整的程序。否则只会导致徒劳的猜测。
-
如果我对情况的理解正确,您有一个错误的组件会泄漏内存。如果您是组件的作者,或者您可以访问源代码,则应该尝试修复它。否则,如果可能,您应该联系开发人员。
标签: delphi memory components