Проблема. Перевірити існування в програмі витоків пам'яті (Memory leek).
Рішення: Для вирішення даної задачі можна скористатися різними інструментами / компонентами. Наведу деякі з них:
Звичайно можна встановити або підключити тій чи іншій компонент до проекту і скористатися всіма можливостями, які поставляються. Але, буваю ситуації коли потрібно оперативно визначити є витік паіяті чи ні, при цьому нічого не налаштовуючи або встановлюючи. У такому випадку потрібно встановити глобальну змінну ReportMemoryLeaksOnShutdown: = True ;. За замовчуванням цей параметр вимкнений. При закритті програми, якщо є витік пам'яті, з'явиться вікно з повідомленням що «тече», і в якій кількості. (Рис. 1):
Мал. 1 Витік пам'яті
uses
.
begin
// Для відображення витоків пам'яті, якщо вони є
ReportMemoryLeaksOnShutdown. = True;
Application. Initialize;
Application. MainFormOnTaskbar. = True;
Application. CreateForm # 40; TMainForm. MainForm # 41; ;
Application. Run;
end.
Якщо у вашому додатку є витоку пам'яті, вони відображатися при закритті програми. Відображатися тільки в тому випадку якщо ви працювали з якимись класами, які не були видалені після використання.
Діагностику витоків пам'яті я застосував при написанні статті: TStrings і звільнення об'єктів. исходники проекту лежать тут