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

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

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

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

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

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

5 ответов

Решение

Остерегайтесь проверки границ 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 выигрывает. Почему детектор утечки памяти не может работать так же надежно, как яблочко?

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

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

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

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

Я был довольно доволен AQTime, и цены на него сложно превзойти (и они очень прозрачны - 599 долларов на пользователя).

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

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

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

Другие вопросы по тегам