Бесплатный Profiler для VS 2008
Использование бесплатного Profiler для Visual Studio 2008
Введение
В статья идёт речь об основах использования бесплатного Profiler-а для VS2008 , который предоставляет разработчику возможность измерять производительность функций в программе скомпилированной на Visual Studio 2008.Скачать Profile можно по ссылке: http://www.microsoft.com/downloads/details.aspx?displaylang=ru&FamilyID=fd02c7d6-5306-41f2-a1be-b7dcb74c9c0b С помощью Profile можно узнать, какая функция сколько времени выполнения занимала и другую статистику выполнения программы. Профайлер работающий из командной строки абсолютно бесплатный, в ином случае необходимо покупать Visual Studio Team, которая не мало стоит.
Пример использование
Прежде всего, для облечения работы добавим к переменной среды PATH адрес файлов профайлера, например: C:\Program Files\Microsoft Visual Studio 9.0\Team Tools\Performance Tools\. Правда это не обязательно делать.Следующий шаг это создание проект Visual Studio 2008 (можно и в Express) на C++. Пусть это будет консольная программа, исходный код представлен ниже:
#include "stdafx.h"
void function1000()
{
for(int i = 0; i < 1000; i++)
{}
}
void functionSleep1000()
{
Sleep(1000);
}
void functionEmpty()
{
Sleep(500);
}
int _tmain(int argc, _TCHAR* argv[])
{
function1000();
functionEmpty();
functionSleep1000();
functionEmpty();
return 0;
}
В настройках проекта, Linker->Command Line в поле Additional Options добавить параметр /Profile профайлера.
Компилирует проект в Debug конфигурации.
Теперь переходим в диреторию программы и проделаем следующее:
0. Запускаем инструмент:
vsinstr.exe TestProgram.exe
1. Запускаем монитор:
vsperfcmd.exe -start:trace -output:TestProgramOutput.vsp
2. Запускаем наше приложение:
TestProgram.exe
3. Выключаем монитор:
vsperfcmd.exe /shutdown
4. Теперь создадим файл отчёта:
vsperfreport.exe TestProgramOutput.vsp -summary:all
В результате будет создано много файлов. TestProgramOutput_CallTreeSummary.csv - файл в котором храниться дерево вызовов, но нас больше интересует файл TestProgramOutput_FunctionSummary.csv, в нём храниться статистика по функциям. Для просмотра csv файлах можно использовать много программ, Т аблицаПро, CSVed, OpenOffice.org Calc, KSpread. Я использовал CSVed с сайта http://csved.sjfrancke.nl/. В результате мы получим такие данные.
Имя функции | Avg Elapsed Exclusive Time (Среднее время исполнения) | Numbers of Call (Количество вызовов) |
function1000(void) | 4166 | 1 |
functionEmpty(void) | 607 | 2 |
functionSleep1000(void) | 1056 | 1 |
Конечно, файлы содержат больше данных, но это наиболее интересные, как мы видим из таблицы время указано в миллисекундах. С помощью этой функции можно легко тестировать производительность вашей программы.
Для лёгкости анализа можно использовать bat файл со следующим содержимым:
vsinstr.exe %1.exe
vsperfcmd.exe -start:trace -output:%1.vsp
%1.exe
vsperfcmd.exe /shutdown
vsperfreport.exe %1.vsp -summary:all
Пример запуска:
Test.bat TestProgram
Резюме
Использую Visual Studio 2008 Express существует возможность тестировать производительность функций, используя консольный Performance Tools.При полном или частичном копировании необходимо указывать ссылку на данную статью.
Олег (Дата )
Все вопросы и предложения высылайте на адрес soft_support@list.ru. Необходимо в заголовке указать название статьи.
Оставь свой отзыв
DLed e-mail: dmlled@yahoo.comДата: 18.04.11 |
geHuc Дата: 02.03.10 |
Дата: 08.12.09 |
Tank Дата: 06.03.09 |