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

Санкт-Петербургский Государственный

Электротехнический Университет

Кафедра МОЭВМ

Дисциплина: " Метрология программного обеспечения"

О Т Ч Ё Т

по лабораторной работе №3

по теме: "Измерение характеристик динамической сложности программ с помощью профилировщика Sampler"

( вариант 13 )

Преподаватель: Кирьянчиков В.А.

Выполнилa: Нго Макеме

Факультет: КТИ

Группа: 0305

Санкт-Петербург

2004

1. Введение.

Казалось бы, зачем писать программу для профилирования, если есть большое число инструментов ( Turbo Profiler фирмы Borland International, Sampler фирмыWATCOM ) предназначенных снимать профили программ. Несомненно, вышеуказанные продукты являются надежными, мощными и точными средствами снятия профилей, но у них есть свои недостатки.

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

2. Основная концепция Sampler’а.

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

 Минимальная сложность в использовании ;

 Минимальные накладные расходы на исполняемый код (не нужна отладочная информация и возможна оптимизация), высокая точность и скорость снятия профилей ;

 Получение результата в твердом виде ;

 Возможность снятия профилей с одномодульных и многомодульных программ.

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

Цель работы:

Получение навыков измерения характеристик динамической сложности программ с помощью профилировщика Sampler.

Задание:

  1. Ознакомиться с документацией на Sampler.

  2. Выполнить тестовую программу test_cyc.c с анализом параметров повторения циклов и проверкой их влияния на точность и чувствительность профилирования.

  3. Скомпилировать и выполнить под управления Sampler’а программы на Паскале и Си, разработанные в первой и второй лабораторной работе, снять профили.

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

2. Результат выполнения тестовой программы test_cyc.c с анализом параметров повторения циклов и проверкой их влияния на точность и чувствительность профилирования с помощью Sampler’a.

#define PrType

#include "sampler.h"

#define Size 10000

int i, tmp, dim[Size];

void main()

{ SAMPLE ;

SAMPLE ;

for(i=0;i<Size/10;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

SAMPLE ;

for(i=0;i<Size/5;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

SAMPLE ;

for(i=0;i<Size/2;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

SAMPLE ;

for(i=0;i<Size;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

SAMPLE ;

SAMPLE ;

for(i=0;i<Size/10;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

SAMPLE ;

for(i=0;i<Size/5;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

SAMPLE ;

for(i=0;i<Size/2;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

SAMPLE ;

for(i=0;i<Size;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

SAMPLE ;

}

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

Создан программой Sampler ( версия от Feb 15 1999 )

1995-98 (c) СПбГЭТУ, Мойсейчук Леонид.

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

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

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

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

1 : 6 1 : 7 0.84 1 0.84

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

1 : 7 1 : 10 98.90 1 98.90

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

1 : 10 1 : 13 193.60 1 193.60

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

1 : 13 1 : 16 488.61 1 488.61

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

1 : 16 1 : 19 972.19 1 972.19

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

1 : 19 1 : 20 0.84 1 0.84

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

1 : 20 1 : 22 98.06 1 98.06

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

1 : 22 1 : 24 191.92 1 191.92

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

1 : 24 1 : 26 482.74 1 482.74

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

1 : 26 1 : 28 967.16 1 967.16

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

Вывод:

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

3.1 Результат выполнения программы на С++ с анализом времени выполнения определенных частей вычислительного алгоритма с помощью Sampler’a.

Соседние файлы в папке Sissy_Metr