- •2007 Г.
- •1. Формулировка задания
- •2. Выполнение работы
- •2.1.1 Профилирование программы test_cyc.C
- •2.1.2 Профилирование программы test_sub.C
- •2.2.1.1 Профилирование программы c1.Cpp(измерение времени полного выполнения программы)
- •2.2.1.2 Профилирование программы c1.Cpp(измерение времен выполнения функциональных участков)
- •2.2.1.3 Профилирование оптимизированной программы c2.Cpp(измерение времени полного выполнения программы)
- •2.2.1.4 Профилирование оптимизированной программы c2.Cpp(измерение времен выполнения функциональных участков)
- •2.2.2.1 Профилирование программы pas1.Pas(измерение времени полного выполнения программы)
- •2.2.2.2 Профилирование программы pas1.Pas(измерение времен выполнения функциональных участков)
- •2.2.2.3 Профилирование оптимизированной программы pas2.Pas(измерение времени полного выполнения программы)
- •2.2.2.4 Профилирование оптимизированной программы pas2.Pas(измерение времен выполнения функциональных участков)
- •3. Выводы
Министерство общего и профессионального образования РФ
───────────────────────────
Санкт-Петербургский Государственный
Электротехнический Университет
“ЛЭТИ”
──────────────
Кафедра МОЭВМ
Отчёт
к лабораторной работе № 3
«Измерение характеристик
динамической сложности программ с помощью профилировщика Sampler»
по дисциплине
“Метрология программного обеспечения ”
за VIII семестр.
ВАРИАНТ 15
Проверила: Боханова Е. В.
Выполнил: студент гр. № 3305
Мещеряков А. А.
2007 Г.
1. Формулировка задания
1. Ознакомиться с документацией на SAMPLER и выполнить под его управлением тестовые программы test_cyc.c и test_sub.c c анализом параметров повторения циклов и проверкой их влияния на точность и чувствительность профилирования.
2. Скомпилировать и выполнить под управлением SAMPLER'а программы на Паскале и С, разработанные в 1-ой лабораторной работе. Выполнить разбиение программы на функциональные участки и снять профили для двух режимов: 1 - измерение только полного времени выполения программы; 2 - измерение времен выполнения функциональных участков.
3. Выявить "узкие места", ввести в программы усовершенствования и получить новые профили. Сравнить результаты, полученные для Паскаля и С, с аналогичными результатами, полученными с помощью Turboprofiler'а.
Примечания:
1) необходимо пользоваться версией Sampler, размещенной в каталоге Sampler140906;
2) так как чувствительность SAMPLER'а по времени выше, чем у Turboprofiler'а, то вводить вспомогательное зацикливание программы обычно не требуется.
2. Выполнение работы
2.1.1 Профилирование программы test_cyc.C
Исходный текст программы:
#define Size 10000
#include "sampler.h"
int i, tmp, dim[Size];
void main()
{
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;
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) СПбГЭТУ, Мойсейчук Леонид.
Список обработанных файлов.
----------------------------------------------------------------------
NN Имя обработанного файла
----------------------------------------------------------------------
1. TEST_CYC.CPP
----------------------------------------------------------------------
Таблица с результатами измерений ( используется 15 из 416 записей )
----------------------------------------------------------------------
Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)
----------------------------------------------------------------------
1 : 7 1 : 9 8.38 1 8.38
----------------------------------------------------------------------
1 : 9 1 : 11 15.92 1 15.92
----------------------------------------------------------------------
1 : 11 1 : 13 38.55 1 38.55
----------------------------------------------------------------------
1 : 13 1 : 15 77.10 1 77.10
----------------------------------------------------------------------
1 : 15 1 : 16 0.00 1 0.00
----------------------------------------------------------------------
1 : 16 1 : 19 8.38 1 8.38
----------------------------------------------------------------------
1 : 19 1 : 22 15.09 1 15.09
----------------------------------------------------------------------
1 : 22 1 : 25 38.55 1 38.55
----------------------------------------------------------------------
1 : 25 1 : 28 76.27 1 76.27
----------------------------------------------------------------------
1 : 28 1 : 29 0.84 1 0.84
----------------------------------------------------------------------
1 : 29 1 : 35 7.54 1 7.54
----------------------------------------------------------------------
1 : 35 1 : 41 15.92 1 15.92
----------------------------------------------------------------------
1 : 41 1 : 47 38.55 1 38.55
----------------------------------------------------------------------
1 : 47 1 : 53 75.43 1 75.43
----------------------------------------------------------------------
Вывод: Способ расположения исходного текста программы не влияет на профилирование.