Хорошее профилирование памяти, обнаружение утечек и ошибок для Windows.

StackOverflow https://stackoverflow.com/questions/957218

Вопрос

В настоящее время я ищу хороший инструмент обнаружения утечек памяти и утечек для Windows.Несколько лет назад я использовал Boundschecker от Numega, который оказался ОЧЕНЬ хорош.Прямо сейчас, похоже, он был продан Compuware, который, по -видимому, продал его снова какой -то другой компании.

Попытка оценить демо-версию текущей версии до сих пор была очень разочаровывающей, в лучших «корпоративных» традициях:

(а) на их веб-сайте нет рекламируемых цен (большие красные мигающие огни предупреждения);
(b) контактная форма с просьбой указать количество сотрудников и другую личную информацию;
(c) никакого ответа на мои электронные письма с просьбой оценить и цену.

Мне пришлось сделать вывод, что BoundsChecker теперь является одним из «тех» продуктов.Знаешь, тот тип, на котором вы невинно звоните, а завтра 3 мужчины в черных костюмах появляются в вашем здании, желая поговорить с вами о «партнерских отношениях» и не очень секретно оценить размер вашей компании, и, следовательно, сколько они могут получить прочь с зарядкой.

Итак, оставим в стороне разглагольствования, может ли кто-нибудь порекомендовать отличный инструмент для проверки памяти/обнаружения утечек, сколько он стоит и где купить?

Это было полезно?

Решение

Остерегайтесь средства проверки границ Compuware:Он стабилен до определенного момента.Это стоит около 3600 долларов и примерно столько же на содержание из года в год.Но это мелочи по сравнению с Coverity.За последние 3 года мне не удалось провести хороший тестовый прогон прямо под Bounds Checker.Вот почему я больше не использую его и не рекомендую вам использовать, за исключением небольших, крошечных проектов.В крупных корпоративных приложениях он работает слишком медленно, занимает слишком много памяти и просто перестает работать.Я имею в виду, действительно ли вы хотите, чтобы ваше приложение загружалось 5 минут?Вы хотите, чтобы выполнение тестов занимало в 3 раза больше времени?Хуже всего то, что это тенденция просто замыкаться в себе.Поддержка клиентов со стороны Compuware была довольно ограниченной.Но Bounds Checker был продан другой компании (не помню ее названия), чей веб-сайт настолько стерильный, стерильный и сухой, что на его фоне веб-сайты финансовых компаний выглядят интересными.Но главная проблема BoundsChecker в том, что он только 32-битный.Так что если вам нужно профилировать большое приложение, которое занимает много памяти (более 1 Гигабайта), вам просто не повезло.Bounds Checker съедает от 2 до 3 гигабайт памяти вашего приложения.А с 32-битными приложениями вы хорошо знаете, что 4 гигабайта — это максимум, который вы можете получить.

Укрытие — это здорово, если вы наймете человека, который присмотрит за ним.Серьезно, Coverity стоит больше, чем мой дом.Не говоря уже о человеке, которого моя компания наняла бы для присмотра за этой чертовой штукой.Чтобы сотворить это волшебство, нужно 24 часа.И это не намного больше волшебства, чем простая компиляция вашего кода на уровне предупреждения 4 и включение «Анализ кода» (в Visual Studio).

Я пробовал другие инструменты утечки памяти (для собственного кода).Все они ПЛОХИЕ, слишком сложные или просто блокируют систему.Мне настолько противна вся область профилировщиков памяти, что я просто хочу вернуться к использованию отладочной CRT.Это или просто написать свое.

Что касается инструментов покрытия кода, Bullseye безоговорочно выигрывает.Почему детектор утечек памяти не может работать так же надежно, как «яблочко»?

Другие советы

Можешь попробовать Валидатор памяти.Вы также можете попробовать ознакомительную копию.

Цены на лицензионную версию

Microsoft Верификатор приложений Инструмент очень хорош для обнаружения утечек, а также множества других распространенных ошибок программирования в Windows (COM, кучи, TLS, блокировки и т. д.).

Он не так уж много делает в плане профилирования, но дает вам стек, в котором была выделена память при ее утечке, или стек, в котором она была освобождена в первый раз, если вы освободили ее вдвое, и т. д.

Я был вполне доволен AQTime, а цены очень низкие (и очень прозрачные — 599 долларов за пользователя).

Профилировщик распределения работает довольно хорошо — он не так сложен, как Boundschecker (насколько я помню о Boundschecker), но то, что он делает, он делает хорошо — и он также обрабатывает немало других вещей.

Эта тема сильно устарела.Это правда, что нам не удалось убедить Micro Focus публиковать цены на их главном веб-сайте, но вы можете получить цены на ComponentSource, и мы не отправляем агентов в темных костюмах и темных очках 8-/ Цены зависят от того, запрашиваете ли вы однопользовательскую или многопользовательскую лицензию и хотите ли вы только BoundsChecker или всю DevPartner Studio.Видеть Список источников компонентов для получения подробной информации.

В любом случае, мы не прекратили работу над продуктом.4 февраля мы выпустили версию 10.5, которая (наконец-то) поддерживает 64-битные приложения (AMD64, Intel64, а не Itanium) в Vista и Windows 7.По пути было исправлено немало старых ошибок.Следующее обновление будет включать поддержку XP64 и Windows 7 SP1, а также Visual Studio 2010 SP1.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top