Volynsky Alex
Здесь вы можете найти некоторые инструменты, которые вы могли бы использовать для своей работы:
(1) С Valgrind ( http://www.valgrind.org/) представляет собой инструментальную основу для создания инструментов динамического анализа. Существуют инструменты Valgrind, которые могут автоматически обнаруживать множество ошибок управления памятью и потоков, а также подробно профилировать ваши программы. Вы также можете использовать Valgrind для создания новых инструментов. В настоящее время дистрибутив Valgrind включает в себя шесть инструментов производственного качества: детектор ошибок памяти, два детектора ошибок потоков, профилировщик кеширования и прогнозирования ветвлений, кэш для создания графа вызовов и профилировщик прогнозирования ветвлений. , и профилировщик кучи. Он также включает в себя три экспериментальных инструмента: детектор переполнения кучи / стека / глобального массива, второй профилировщик кучи, который проверяет, как используются блоки кучи, и базовый векторный генератор блоков SimPoint.
(2)Если команда детектор ошибок памяти
(http://valgrind.org/docs/manual/mc-manual.html)
(3) Попробуйте гул-perftools ( http://code.google.com/p/gperftools/?redir=1 )
Профилирование кучи включено в TCMalloc, и я считаю, что можно " сбросить"
использование кучи непосредственно перед вашей "определенной стадией" и запрос состояния кучи сразу после этого
Фреймворк Google для написания тестов на C++ (http://code.google.com/p/googletest/)на различных платформах (Linux, Mac OS X, Windows, Cygwin, Windows CE и Symbian).
На основе архитектуры xUnit. Поддерживает автоматическое обнаружение тестов, богатый набор утверждений, определяемых пользователем утверждений, тесты смерти, фатальные и несмертельные сбои, параметризованные по значению и типу тесты, различные варианты запуска тестов и генерацию отчетов о тестировании XML.
(4)Анализатор производительности AMD CodeAnalyst (http://developer.amd.com/tools/CodeAnalyst/Pages/default.aspx) помогает разработчикам программного обеспечения повысить производительность приложений, драйверов и системного программного обеспечения. Хорошо настроенное программное обеспечение обеспечивает лучший опыт конечного пользователя за счет более короткого времени отклика, увеличения пропускной способности и лучшего использования ресурсов. AMD CodeAnalyst-это инструмент профилирования, используемый
разработчики по всему миру для повышения производительности игр и медиа-ориентированных приложений, обработки транзакций и высокопроизводительных научных/инженерных вычислений.
(5)Валидатор Памяти, Детектор утечки памяти C++ (http://www.softwareverify.com/cpp-memory.php) Memory Validator - это программный инструмент для обнаружения утечек памяти и ошибок памяти, предназначенный для использования разработчиками программного обеспечения, тестировщиками обеспечения качества программного обеспечения и сотрудниками службы поддержки клиентов.
(6)AQTime (http://www.automatedqa.com/downloads/aqtime/index.asp), это один из лучших инструментов профилирования, которые я когда-либо использовал. Это не бесплатно, но вы можете получить 30-дневную пробную версию, так что если вы планируете оптимизировать и профилировать только один проект и вам достаточно 30 дней, то я бы рекомендовал использовать это приложение.
(7) AMD Code Analyst можно бесплатно (http://developer.amd.com/tools/CodeAnalyst/Pages/default.aspx)
(8) У Microsoft есть инструменты анализа производительности Windows
(http://msdn.microsoft.com/en-us/performance/default.aspx)
(9)Проффи (http://www.pauldoo.com/proffy/) Профилировщик нативного кода для Windows (бесплатное программное обеспечение для профилирования приложений нативного кода под Windows.Только отбор проб, никаких навязчивых приборов.Профилирование графа вызовов. Без графического интерфейса. Включите в приложение один файл заголовка C++, чтобы точно контролировать время запуска и остановки профилировщика.
результаты сохраняются в XML (просматриваются в вашем браузере) и Graphviz "точка".Может профилировать многопоточные приложения.
(10) Блестящий ( http://code.google.com/p/shinyprofiler/ )- это молниеносный, полностью документированный и на сегодняшний день самый простой в использовании профилировщик C/C++/Lua без обширной операции. Результаты сглаживаются и отображаются во время выполнения в виде дерева вызовов или сортируются по времени. Выходные данные также можно визуализировать в виде графиков в Ogre3D или вашем пользовательском движке
(11)Очень Хочется Спать (http://www.codersnotes.com/sleepy/)- это C / C++ CPU profiler для систем Windows.
Very Sleepy имеет множество улучшений, таких как профилирование графа вызовов, улучшенный пользовательский интерфейс, сохранение нагрузки, поддержка GCC и 64-битная поддержка. Он поддерживает любое собственное приложение Windows, если оно имеет стандартную отладочную информацию PDB или DWARF2. Перекомпиляция не требуется – он может просто прикрепиться к любому приложению во время работы.
Sleepy выпускается под публичной лицензией GNU, поэтому вам гарантировано право на исходный код и изменять его по своему усмотрению.
(12)Рациональное Очищение ( http://www-01.ibm.com/software/awdtools/purify/ и http://www-01.ibm.com/software/awdtools/purify/win/ )- это инструмент динамического анализа программного обеспечения .Указывает на труднодоступные ошибки памяти, такие как неинициализированный доступ к памяти, переполнение буфера и неправильное освобождение памяти. Определяет утечки памяти (блоки памяти, которые больше не имеют допустимого указателя). Не требует доступа к исходному коду и поэтому может использоваться со сторонними библиотеками. Поддержка Visual C++ и .NET интегрируется с Microsoft® Visual Studio.Поддерживаемые операционные системы: Windows famil.
Он включает в себя две возможности:
1) отладка памяти (указывает на труднодоступные ошибки памяти, такие как неинициализированный доступ к памяти,
переполнение буфера и неправильное освобождение памяти),
2) обнаружение утечки памяти
(идентифицирует блоки памяти, которые больше не имеют допустимого указателя).
Purify поддерживается в Windows, Linux, Solaris и AIX.
(13) DevPartner (http://www.microfocus.com/products/product-trials/index.aspx?ref=ddm?dpprodtry[^]) анализ качества кода, статики, времени выполнения и безопасности
DevPartner-это виртуальный эксперт, который автоматически обнаруживает и диагностирует дефекты программного обеспечения, проблемы производительности и уязвимости безопасности, скрывающиеся в коде приложения.
(14) Профилировщик-EQATEC (http://eqatec.com/ )
Вы можете создать бесплатную пробную учетную запись на 15 дней и самостоятельно оценить наше решение, опираясь на нашу онлайн-документацию
P/S
Возможно, вы захотите взглянуть на отладочную кучу CRT (через crtdbg.h), которая уже доступна в VS2005.
Отчеты грубые, и нет никакого пользовательского интерфейса, чтобы управлять им (если только вы не можете найти что-то в Google, возможно),
но у него может быть информация, которую вы ищете - и у вас она уже есть:
http://msdn.microsoft.com/en-us/library/x98tx3cf.aspx