我正在维护遗留应用程序,我有以下代码行:
sb.Panels[3].Text:= ' Memory in use: ' + IntToStr(AllocMemSize);
它发出以下警告:
[dcc32 Warning] BLOB.pas(8242): W1000 Symbol 'AllocMemSize' is deprecated
实际上,不推荐使用AllocMemSize(来自System.pas):
var
AllocMemSize: Integer deprecated; {Unsupported}
我的问题是:AllocMemSize
的替代品是什么?有什么意义吗?还有其他一些更有意义的措施吗?
(我想我可以完全删除通话和输出,但用户显然希望在状态栏中看到此信息)
答案 0 :(得分:9)
请致电GetMemoryManagerState
。它返回类似的信息,但不一定要提取为AllocMemSize
这样的单个数字。这种弃用是由于Delphi在Delphi 2006中转换为使用FastMM作为内存管理器,并且跟踪内存与旧内存管理器的不同。
另见文档中的Monitoring memory usage。