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

Оценка производительности программ с помощью пим Sampler2

  1. Концепции оценки производительности программ и их реализация в пим Sampler

Анализ производительности ПО имеет ряд специфических особенностей, которые необходимо учитывать:

  • большое число факторов влияющих на производительность ПО: аппаратная платформа, операционная система и т. д.;

  • сложность определения и задания параметров потребления ресурсов, характеризующих нагрузку компонентов модели программы для расчета по ним характеристик производительности;

  • сложность априорной оценки вероятностных параметров модели программы, характеризующих статистические свойства ее выполнения: вероятности выбора маршрутов, числа повторений циклов и т. д.

Первая особенность является ключевой для любого ПИМ, т. к. тот факт, что команды ПИМ должна выполнять сама измеряемая система (ЭВМ, на которой функционирует измеряемая программа), приводит к возникновению искажений. Количество искажений зависит от частоты обнаруживаемых событий и от операций, выполняемых измерителем при обнаружении каждого события. Подтверждением тому явились искажения измерений, получаемых с помощью ПИМ Sampler, например, при сильной загрузке ЦП ЭВМ произвольным сторонним процессом.

На более глубоком уровне, если говорить об измеряемом программном модуле, запускаемом в отдельном процессе на конкретной ЭВМ, необходимо обеспечить максимальную независимость последнего от процесса, в котором функционирует ПИМ. В ПИМ Samplerэто требование реализовано с помощью использования механизма программных прерываний: исследуемый модуль запускается в отдельном от ПИМ процессе и упакованные данные измерений поступают на обработку в ПИМ через пользовательское прерывание (обычно вектор 65h).

Измеряемым ресурсом в ПИМ Samplerявляется время выполнения заданного участка кода. Соответственно под анализом производительности понимается определение количественных характеристик времени и вероятностей выбора маршрутов выполнения исследуемой программы.

2. Методология измерений с помощью пим Sampler

Проведение измерительных экспериментов с помощью ПИМ Samplerсостоит из следующих этапов:

1) Ручная расстановка контрольных точек (КТ). Для этого измеряемый код располагается между минимум двумя функциями контрольных точек (функция SAMPLEдляC++).

  1. Компиляция исследуемой программы (требуется подключение заголовочного файла sampler.h) и ее выполнение под управлением монитора со снятием замеров в КТ.

После выполнения исследуемой программы под управлением ПИМ Sampler(командная строка:sampler.exe<имя файла>) формируется отчет о выполнении измерений в виде таблицы измерений и генерируется файл данных измерений, являющийся входным для программы визуализации результатов измеренийSmpView. Ниже последовательно приведены пример файла отчета и пример графической интерпретации данных файла отчета для программыProg1 на С++:

№ строки код файла Prog1.cpp

1. #include “sampler.h”

2. void main() {

3. SAMPLE;

4. char*k= “Время выполнение этой строки измеряется в ПИМSampler!”;

5. SAMPLE;

6. }

Отчет о результатах измерений для программы Prog1.

Список обработанных файлов.

---------------------------------------------------------------------------

NN Имя обработанного файла

---------------------------------------------------------------------------

1. PROG1.CPP

---------------------------------------------------------------------------

Таблица с результатами измерений ( используется 2 из 416 записей )

---------------------------------------------------------------------------

Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Вер-ть Среднее

время(мкс)

---------------------------------------------------------------------------

1 : 3 1 : 5 0.28 1 1 0.28

---------------------------------------------------------------------------

Отображение нагруженного орграфа (НОГ) программы Prog1.cpp:

1

3

1

5

Источник: PROG1.CPP [ 3 ]

Приемник: PROG1.CPP [ 5 ]

Общее время, мкс: 0.28

Количество переходов: 1

Вероятность: 1

Среднее время, мкс: 0.28

Из приведенных примеров видно, что вершины НОГ соответствуют местам вызова функций КТ. Дуги НОГ нагружены вероятностями перехода из узла-источника дуги в узел-приемник дуги.