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

У меня была та же ошибка, но по другой причине: по какой-то причине я установил Ninject.Web.WebApi.WebHost и Ninject.Web.WebApi.OwinHost.

Если вы ищете в источнике OwinWebApiModule.cs и WebApiWebHostModule.cs , оба модуля Ninject имеют привязку для HttpConfiguration.

Я удалил Ninject.Web.WebApi.WebHost и все хорошо.

8
задан Zifre 31 July 2009 в 15:49
поделиться

4 ответа

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

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

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

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

.
3
ответ дан 5 December 2019 в 13:01
поделиться

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

Стоимость лицензионных версий

5
ответ дан 5 December 2019 в 13:01
поделиться

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

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

2
ответ дан 5 December 2019 в 13:01
поделиться

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

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

2
ответ дан 5 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: