Скачиваний:
23
Добавлен:
01.05.2014
Размер:
103.42 Кб
Скачать

Режим tbs

Рассмотрим подробнее режим сбора информации через регулярные промежутки времени. Этот режим позволяет отслеживать все активные в данный момент процессы, включая системные процессы, драйвера устройств, а также прикладные программы. Рассмотрим этот режим на примере двух С++ программ, хранящихся в файлах test_cyc.cpp и test_sub.cpp. Программы должны быть скомпилированы с отладочной информацией. Предпочтительно использовать Microsoft Visual C++. Для компиляторов Borland следует использовать следующие опции компиляции (настройки даны для Borland 5.1):

# -k std stack frame is on

# -v debugging (and also line numbers and out-of-lining) is on

# -r- no variables are put into registers

link_options = $(link_options) /v

cc_options = $(cc_options) -k -v -r- -DNDEBUG

Перед началом профилирования необходимо создать проект VTune. Для этого необходимо нажать комбинацию клавиш Ctrl-N или воспользоваться меню File/New Project/Using New Project Wizard. По умолчанию wizard предложит режим TBS для Windows Application.

На следующем шаге нужно выбрать имя модуля, который будет профилироваться и имя приложения, запускающего этот модуль. В нашем случае это test_cyc.exe, являющийся одновременно и профилируемым модулем и приложением, которое должно быть запущено для проведения сеанса сбора статистики. На данном шаге также нужно указать параметры командной строки приложения (если они необходимы). Рекомендуется также заглянуть в Advanced Options и указать путь к файлам с исходным кодом, рабочую директорию программы, директорию для записи результатов профилирования. Здесь же можно указать интервал выборки в миллисекундах и общее время профилирования в секундах.

Далее wizard предложит ввести имя проекта и сохранить только что созданный проект.

Во время измерений в данном режиме профилировщик выполняет следующий шаги:

  • Запускает профилируемое приложение (или делает его активным)

  • Записывает расположение в памяти всех запущенных приложений, включая и системные процессы.

  • По истечении периода времени, задаваемого параметром «start delay» («начальная задержка»), профилировщик прерывает выполнение приложения с частотой, которая была задана в параметре «sampling interval» («интервал выборки») и собирает данные об адресах инструкций. За каждый перерыв работы приложения VTune делает одну выборку.

  • Если была включена опция «Collect Chronology Data» (Configure menu/Options command/Advanced Options), VTune также собирает данные о состоянии т.н. «счетчиков производительности» (Performance Counters). Счетчики производительности предоставляются как самой операционной системой (объекты Memory, Process), так и приложениями и позволяют оценить взаимодействие профилируемого приложения с различными подсистемами ОС.

  • Выборка запиминается в буфере. Когда буфер заполняется, процесс сбора данных приостанавливается до тех пор, пока данные не будут записаны на диск.

  • Сбор данных продолжается либо все время, пока профилируемое приложение активно, либо строго определенное время, которое можно задать в настройках Sampling Options.

  • По окончании профилирования VTune отображает собранную статистику. Для отображения можно выбрать различные формы представления.

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

По окончании сеанса профилирования будут созданы несколько отчетов о поведении программы: Отчет по модулям, отчет по «узким местам» и отчет по счетчикам поризводительности (chronology data). Рассмотрим подробнее отчеты по модулям и «узким местам».