Хорошее профилирование памяти, обнаружение утечек и ошибок для Windows - PullRequest
8 голосов
/ 05 июня 2009

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

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

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

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

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

Ответы [ 5 ]

5 голосов
/ 05 июня 2009

Вы можете попробовать Memory Validator . Вы можете попробовать пробную копию того же самого.

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

3 голосов
/ 12 июня 2010

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

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

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

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

2 голосов
/ 05 июня 2009

Я был довольно доволен AQTime , и цены трудно превзойти (и очень прозрачные - 599 долларов США / пользователь).

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

2 голосов
/ 05 июня 2009

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

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

1 голос
/ 08 апреля 2011

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

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

...