- •1. Формулировка задания
- •2. Выполнение работы
- •2.1.1 Профилирование программы test_cyc.C
- •2.1.2 Профилирование программы test_sub.C
- •2.2.1.1 Профилирование программы linefit1.CPp(измерение времени полного выполнения программы)
- •2.2.1.2 Профилирование программы linefit1.CPp(измерение времен выполнения функциональных участков)
- •2.2.1.3 Профилирование оптимизированной программы linefit1.CPp(измерение времени полного выполнения программы)
- •2.2.1.4 Профилирование оптимизированной программы linefit1.CPp(измерение времен выполнения функциональных участков)
- •2.2.2.1 Профилирование программы linefit1.Pas(измерение времени полного выполнения программы)
- •2.2.2.2 Профилирование программы linefit1.Pas(измерение времен выполнения функциональных участков)
- •2.2.2.3 Профилирование оптимизированной программы linefit1.Pas(измерение времени полного выполнения программы)
- •2.2.2.4 Профилирование оптимизированной программы linefit1.Pas(измерение времен выполнения функциональных участков)
- •3. Выводы
Санкт-Петербургский Государственный Электротехнический Университет
Кафедра МО ЭВМ
Отчёт по лабораторной работе №3
Дисциплина: Метрология программного обеспечения
Название работы: “Измерение характеристик динамической сложности программ с помощью стандартного профилировщика SAMPLER”
Выполнил: Ву Зуй Линь
Группа : 1305
Преподаватель: Кирьянчиков В.А.
Санкт - Петербург 2005 год
1. Формулировка задания
Ознакомиться с документацией на SAMPLER и выполнить под его управлением тестовые программы test_cyc.c и test_sub.c c анализом параметров повторения циклов и проверкой их влияния на точность и чувствительность профилирования.
Скомпилировать и выполнить под управлением SAMPLER'а программы на Паскале и С, разработанные в 1-ой лабораторной работе. Выполнить разбиение программы на функциональные участки и снять профили для двух режимов: 1 - измерение только полного времени выполнения программы; 2 - измерение времен выполнения функциональных участков.
Выявить "узкие места", ввести в программы усовершенствования и получить новые профили.
Сравнить результаты, полученные для Паскаля и С, с аналогичными результатами, полученными с помощью 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 16.76 1 16.76
----------------------------------------------------------------------
1 : 11 1 : 13 39.39 1 39.39
----------------------------------------------------------------------
1 : 13 1 : 15 78.78 1 78.78
----------------------------------------------------------------------
1 : 15 1 : 16 1.68 1 1.68
----------------------------------------------------------------------
1 : 16 1 : 19 9.22 1 9.22
----------------------------------------------------------------------
1 : 19 1 : 22 16.76 1 16.76
----------------------------------------------------------------------
1 : 22 1 : 25 40.23 1 40.23
----------------------------------------------------------------------
1 : 25 1 : 28 78.78 1 78.78
----------------------------------------------------------------------
1 : 28 1 : 29 0.00 1 0.00
----------------------------------------------------------------------
1 : 29 1 : 35 8.38 1 8.38
----------------------------------------------------------------------
1 : 35 1 : 41 16.76 1 16.76
----------------------------------------------------------------------
1 : 41 1 : 47 39.39 1 39.39
----------------------------------------------------------------------
1 : 47 1 : 53 77.94 1 77.94
----------------------------------------------------------------------
Вывод: Способ расположения исходного текста программы не влияет на профилирование.