Статьи / Бесплатный Profiler для VS 2008

Бесплатный 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