FastMM:总分配内存
我如何获得由FastMM分配的内存总量?
我试过了:
function GetTotalAllocatedMemory: Cardinal;
var
MMState: TMemoryManagerState;
begin
GetMemoryManagerState(MMState);
Result := MMState.TotalAllocatedMediumBlockSize + MMState.TotalAllocatedLargeBlockSize;
end;
这是对的吗?
无论如何它会返回奇怪的东西。它比我在Windows任务管理器中看到的值少5倍。我相信Delphi应用程序分配的内存量等于FastMM分配的内存加上一些系统开销。我错了吗?
没有找到相关结果
已邀请:
4 个回复
视蕉梁拌客
谷起
靛取糕奖穿
版萍层分
(摘自FastMM
程序输出)。最后我意识到这个巨大的开销是由FullDebug模式引起的。它为每个分配保留堆栈跟踪,所以如果你分配了很多微小的内存块(我的应用程序有UnicodeString x 99137,Unknown x 17014和~10000个Xml对象),开销变得可怕。删除FullDebug模式会将内存消耗恢复为正常值。 希望这有助于某人。