Я тоже сталкивался с такой ситуацией:
В любом случае он возвращает что-то странное.Это в 5 раз меньше значения, которое я вижу в диспетчере задач Windows.Я считаю, что объем памяти, выделенный приложением Delphi, равен выделенной памяти FastMM плюс некоторые системные издержки.Я не прав?
и потратил впустую несколько часов, пытаясь выяснить, где находится вся память.По словам диспетчера задач, мое приложение занимало 170 Мб, но статистика FastMM показала общий размер выделенных блоков ~ 13 Мб:
12565K Allocated
160840K Overhead
7% Efficiency
(выдержка из вывода процедуры FastMM LogMemoryManagerStateToFile
).Наконец я понял, что эти огромные издержки вызваны режимом FullDebug.Он сохраняет следы стека для каждого выделения, поэтому, если у вас выделено много крошечных блоков памяти (у моего приложения были объекты UnicodeString x 99137, Unknown x 17014 и ~ 10000 XML), накладные расходы становятся пугающими.Удаление режима FullDebug вернуло потребление памяти к нормальным значениям.
Надеюсь, это кому-нибудь поможет.