среда, 14 февраля 2007 г.

Пригодятся каждому Delphi проекту

Опубликованный Delphi-пример oltp_step0 содержит утечку памяти - TStringList не освобождается. Заметить такую утечку в большом количестве кода практически невозможно. Эх сколько же программ содержит такие неприятные особенности. Нашел утечку стандартным уже способом - подключил FastMM и тут же увидел что есть. Подключил JCL Debug Data и увидел в какой строке эта память выделяется.

JCL Exception Dialog тоже часто хорошо экономит время на локализации места, где произошло исключение.

Уже молчу про DUnit, так как думаю, что многие его уже используют с приходом BDS2006 и TurboExplorer.

Грех этим всем не воспользоваться - хорошо экономит время.

Повысит скорость работы приложения с памятью модуль FastMove. Также полезная штука, если много работы со строками Fastcode Library.

PS. Немного непривычно работать в Java со сборщиком мусора. Хочется держать уровень потребляемой приложением памяти на достаточно низком уровне. В конце концов в системе работает не только мое приложение. Пока не знаю как заставить сборщик мусора убирать его при достижении определенного объема - уверен, что это можно сделать, но пока не занимался вопросом. Крайне полезна также стандартная штука printStackTrace() тем, что показывает где произошло исключение.

Да еще непонятно - вот новый менеджер памяти BDS2006 основан на FastMM, но что-то не видно нигде пока где это можно включить чтобы видеть утечки, без дополнительного подключения модуля.

После того как написал посмотрел на DUnit и увидел обновление до 9.3.0 - интеграция с FastMM.

2 комментария :

Ильшат комментирует...

ReportMemoryLeaksOnShutdown := True;

Пробовал?

Николай Войнов комментирует...

Спасибо! Слона то я и не заметил. За TurboExplorer взялся всего пару дней назад.