Что ж, использование памяти может увеличиться, даже если в вашем приложении нет утечки памяти. В тех случаях есть вероятность, что у вас есть утечка другого ресурса. Например, если ваш код выделяет, скажем, растровое изображение и хотя он освобождает все объекты, но ему удается забыть о завершении какой-то HBITMAP.
FastMM сообщит вам, что в вашем приложении нет утечки памяти, поскольку вы освободили все свои объекты и данные. Но у вас все еще есть утечки других типов ресурсов (в моем примере - объекты GDI). Утечка других типов ресурсов также может повлиять на вашу память.
Я предлагаю вам попробовать другой инструмент, который проверяет не только утечки памяти, но и утечки других типов. Я думаю, что AQTime способен сделать это, но я не уверен.
Другая возможная причина такого поведения - фрагментация памяти. Предположим, вы выделили 2000 объектов размером 1 Мб (давайте на минуту забудем о накладных расходах MM и наличии других объектов в пользовательском пространстве). Теперь у вас есть полные 2 ГБ занятой памяти. Теперь предположим, что вы освобождаете все четные объекты, поэтому теперь у вас есть «очищенное» пространство памяти, в котором 1 МБ занята и свободные блоки смешаны. Хотя теперь у вас есть 1 ГБ свободной памяти, но вы не можете выделить память для любого 2 МБ-объекта, поскольку максимальный размер свободного блока составляет всего 1 МБ (но у вас есть 1000 таких блоков;)).
Если менеджер памяти использовал блоки размером более 1 Мб для ваших объектов, то он не сможет освободить блоки памяти обратно в ОС, когда вы освободили четные объекты:
[ [busy] [free] [busy] [free] [busy] [free] ]
[ [busy] [free] [busy] [free] [busy] [free] ]...
Эти большие [...] блоки наполовину заняты, поэтому ММ не может передать их ОС. Если вы попросите другой блок, который составляет> 1 МБ, тогда MM потребуется выделить еще один блок из ОС:
[ [busy] [free] [busy] [free] [busy] [free] ]
[ [busy] [free] [busy] [free] [busy] [free] ]...
[ [your-new-object] [free.................] ]
Обратите внимание, что это всего лишь примеры увеличения использования памяти, хотя у вас нет утечки памяти. Я не говорю, что у вас есть ТОЧНАЯ ситуация: D