Подтвердить что ты не робот

Какой лучший инструмент для обнаружения утечек памяти в Delphi

Каков наилучший инструмент для обнаружения утечек памяти.

И бесплатно, и не бесплатно.

Спасибо

4b9b3361

Ответ 1

Мы используем EurekaLog при нашей работе в Delphi 7. Это компонент обработчика исключений, который дает очень подробную информацию об исключениях (включая переменные среды вызова и т.д.) даже для нарушений доступа. Но еще одна замечательная особенность заключается в том, что вы также можете сообщить об ошибке на утечку памяти, которая показывает точную строку кода, где в первую очередь была выделена память/объект! Это коммерческий продукт, но я по-прежнему очень рекомендую его.

Ответ 2

FastMM - это бесплатный детектор утечки памяти (источник), уже интегрированный в последние версии Delphi. Я никогда не нуждался ни в чем другом.

Это намного лучше, чтобы ограничить возможности утечки памяти при кодировании, вместо того, чтобы находить их позже. Некоторые советы:

Всегда используйте try и, наконец, в своем коде для создания свободных объектов. Лучше сразу написать этот код, а затем написать код для использования объектов. Еще лучше использовать IDE-функции, такие как Code Templates.

Используйте только функции, которые возвращают динамически выделенные объекты, когда это абсолютно необходимо. Как правило, лучше передавать объекты в качестве параметров, чем создавать и возвращать их. Например, это

procedure getChoices(var AChoices: TStrings);

будет намного лучше, чем

function getChoices: TStrings;

поскольку нет возможности случайно протекать созданный объект TStrings.

Ответ 3

AQTime очень хорошо. Он также выполняет другие функции, такие как профилирование для производительности. И это не требует каких-либо изменений в вашем коде. Конечно, компиляция с информацией об отладке помогает дать лучшие результаты.

Ответ 4

Я бы порекомендовал полную версию FastMM4 над версией, включенной в Delphi. Полная версия дает вам полный и подробный отчет, записанный в файл вместо диалогового окна. Объедините это с самонастраиваемым "memoryleak-logfile-differ", и вы все настроитесь на выход из bughunt.

Ответ 5

Я всегда использую ReportMemoryLeaksOnShutdown: = (DebugHook < > 0); так что я получаю только утечки, если я отлаживаю.

ps хотел поместить это в комментарий, но у меня еще нет прав.

Ответ 6

Вы можете посмотреть этот сеанс CodeRage 2: Борьба с утечками памяти для чайников. В основном это показывает, как использовать FastMM для предотвращения/обнаружения утечек памяти в Delphi. Был для D2007, но все еще релевантен для D2009.

Ответ 7

FastMM очень хорош. Я знаю 3 или 4 свободных менеджера памяти для Delphi. Требуется меньше часа, чтобы проверить все, потому что обычно им требуется всего 3 строки кода для встраивания в проект.

Ответ 8

Я использую MadExcept, потому что он бесплатный для личного использования.

Ответ 9

Попробуйте UMLD 1.0 Мы попробовали и протестировали!! Интеллектуальное решение для разработки приложений Delphi Leakfree и средства отчетности об ошибках для разработки Delphi.

http://www.torry.net/authorsmore.php?id=7616&sort=ID