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

Министерство образования

РОССИЙСКОЙ ФЕДЕРАЦИИ

САНКТ – ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ

ЭЛЕКТРОТЕХНГИЧЕСКИЙ УНИВЕРСИТЕТ «ЛЭТИ»

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

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

Вариант 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.

  1. Профилирование программы 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

Соседние файлы в папке Лабораторная работа №21