- •Министерство образования
- •Выполнение работы
- •Профилирование программы prost0.C
- •Tbs (Time Based Sampling)1
- •Ebs (Event Based Sampling)
- •Профилирование программы test_cyc.C tbs (Time Based Sampling)
- •Профилирование программы test_sub.C tbs (Time Based Sampling)
- •Ebs (Event Based Sampling)
- •Профилирование программы sort.C tbs (Time Based Sampling)
- •Ebs (Event Based Sampling)
- •Профилирование программы sort.Pas tbs (Time Based Sampling)
- •Ebs (Event Based Sampling)
Министерство образования
РОССИЙСКОЙ ФЕДЕРАЦИИ
САНКТ – ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ
ЭЛЕКТРОТЕХНГИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ»
Кафедра МОЭВМ
Дисциплина: Метрология программного обеспечения
Вариант 6
ОТЧЕТ
по лабораторной работе № 2
«Измерение характеристик динамической сложности программ
с помощью профилировщика Vtune»
Выполнил ст. гр. 3305
Заречнев М.
Проверил:
Санкт – Петербург
2007
Лабораторная работа 3
Измерение характеристик динамической сложности программ с помощью профилировщика VTune
1. Ознакомиться с документацией на VTune и выполнить для программы prost0.c следующее задание:
- компиляция с использованием автономного отладчика;
- профилирование по времени;
- профилирование по частоте;
- профилирование по средним временам на 1 вызов;
- запись результатов профилирования в файл для печати.
2. Выполнить тестовые программы test_cy1.c, test_cyc.c,
test_sub.c c анализом параметров повторения циклов и проверкой
их влияния на точность и чувствительность профилирования.
3. Скомпилировать и выполнить под управлением профилировщика VTune
программы на Паскале и С, разработанные в 1-ой лабораторной работе.
Снять все виды профилей, выявить "узкие места", ввести в
программы усовершенствования и получить новые профили. Если
времена выполнения рассматриваемых при профилировании фрагментов
программы малы для учета VTun'ом, ввести вспомогательное зацикливание
программы.
Выполнение работы
В качестве используемого профилировщика был использован пакет Intel
VtunePerformanceAnalizer 5.0. Программa на Pascal откомпилирована в среде
Borland Delphi 7, на C – в MS VisualStudio 6.0.
Профилирование программы prost0.C
Для всех программ в данной работе проводились 2 вида профилирования:
TBS (Time Based Sampling) - произведение измерений через регулярные промежутки времени с использованием обычного таймера;
EBS (Event Based Sampling) - в данном режиме моменты измерений определяются событиями, которые генерируются процессором. По умолчанию профилировщик реагирует только на событие Clockticks.
Tbs (Time Based Sampling)1
Address Line Clockticks Source
1 #include "stdio.h";
2
3 int primes[1000];
4 #define MAXPRIMES 1000
5
6 main()
01:0010 7 {
8 int j;
9 " int lastprime, curprime;"
10
01:0028 11 primes[0] = 2;
01:0032 12 primes[1] = 3;
01:003C 13 lastprime = 1;
01:0043 14 curprime = 3;
15
01:004A 16 " printf("prime %d = %d\n", 0, primes[0]);"
01:005F 17 " printf("prime %d = %d\n", 1, primes[1]);"
18
01:0075 19 while(curprime < MAXPRIMES)
20 {
01:007E 21 for(j = 0; j <= lastprime; j++)
01:0098 22 1 if((curprime % primes[j]) == 0)
23 {
01:00AA 24 curprime += 2;
25
01:00B3 26 break;
27 }
01:00B5 28 if(j <= lastprime)
01:00BF 29 continue;
01:00C1 30 lastprime++;
01:00CA 31 " printf("prime %d = %d\n", lastprime, curprime);"
01:00DF 32 primes[lastprime] = curprime;
01:00EC 33 curprime += 2;
01:00F5 34 }
01:00FA 35 }
36