Лабы по МПО / Sissy_Metr / 1
.docСанкт-Петербургский Государственный
Электротехнический Университет
Кафедра МОЭВМ
Дисциплина: " Метрология программного обеспечения"
О Т Ч Ё Т
по лабораторной работе №3
по теме: "Измерение характеристик динамической сложности программ с помощью профилировщика Sampler"
( вариант 13 )
Преподаватель: Кирьянчиков В.А.
Выполнилa: Нго Макеме
Факультет: КТИ
Группа: 0305
Санкт-Петербург
2004
1. Введение.
Казалось бы, зачем писать программу для профилирования, если есть большое число инструментов ( Turbo Profiler фирмы Borland International, Sampler фирмыWATCOM ) предназначенных снимать профили программ. Несомненно, вышеуказанные продукты являются надежными, мощными и точными средствами снятия профилей, но у них есть свои недостатки.
В нашем случае требовался простой и надежный инструмент, позволяющий снимать профили программ без дополнительных накладных расходов на качество кода программы и обучение студентов.
2. Основная концепция Sampler’а.
Программа Sampler позволяет избежать сложностей, возникающих с применением других аналогичных программных средств в учебном процессе :
Минимальная сложность в использовании ;
Минимальные накладные расходы на исполняемый код (не нужна отладочная информация и возможна оптимизация), высокая точность и скорость снятия профилей ;
Получение результата в твердом виде ;
Возможность снятия профилей с одномодульных и многомодульных программ.
Программа Sampler является монитором, запускающим программу пользователя и перехватывающую прерывания, несущие информацию о прохождении выполнения программы пользователя через определяемые им точки. После отработки программы ползователя, Sampler генерирует текстовыи файл профиля со списком переходов между точками измерений и затраченным на это временем. Программа пользователя может выполнятся как под мониторингом Sampler’а, так и без него.
Цель работы:
Получение навыков измерения характеристик динамической сложности программ с помощью профилировщика Sampler.
Задание:
-
Ознакомиться с документацией на Sampler.
-
Выполнить тестовую программу test_cyc.c с анализом параметров повторения циклов и проверкой их влияния на точность и чувствительность профилирования.
-
Скомпилировать и выполнить под управления 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.