Вполне возможно, что FastMM не показывает утечки памяти после завершения работы приложения (например, потому что все объекты являются принадлежащими TComponents, а владелец освобождает их).
Но в то же время, когда эти компоненты работают, они все еще могут присутствовать, и их не достаточно быстро освободить.
Использовали ли вы модуль FastMM, который показывает форму с текущим использованием памяти?
<Редактировать>
Это FastMMUsageTracker.pas
в каталоге ...\FastMM\Demos\Usage Tracker
.
Используйте это устройство, затем вызовите в нем функцию ShowFastMMUsageTracker
.
Вы можете обновлять эту форму время от времени, чтобы увидеть, как растет потребление памяти.
Я поместил FastMMUsageTrackerProject
образец онлайн , включая обновление FastMM4, которое облегчает проверку и устранение утечек памяти:
- форма в блоке
FastMMUsageTracker
теперь имеет изменяемый размер, и элементы управления в ней привязываются правильным образом
- появился новый
FastMmBootstrapUnit
модуль, облегчающий отладку утечек памяти
На прошлой неделе у меня была под рукой сторонняя DLL, которая не была написана на Delphi.
В DLL произошла утечка памяти при использовании вызовов Windows GlobalAlloc, которые не отслеживаются FastMM.
NB. Я собираюсь опубликовать обновление для FastMM на
- Йерун