- •Министерство Образования и Науки рф
- •Введение
- •Выполнение работы Тестовые программы test_cyc.C
- •Test_sub.C
- •Выполнение программ из л.Р. 1 Программа на Си Измерение полного времени выполнения программы
- •Результат профилирования:
- •Измерение времен выполнения функциональных участков
- •Результат профилирования:
- •Программа на Паскаль Измерение полного времени выполнения программы
- •Результаты профилирования:
- •Измерение времен выполнения функциональных участков
- •Результаты профилирования:
Выполнение работы Тестовые программы test_cyc.C
Расставим метки в тексте программы. Получим:
#include "inc\Sampler.h"
#define Size 10000
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;
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;
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;
}
Измерим общее и среднее время выполнения циклов:
Список обработанных файлов.
----------------------------------------------------------------------
NN Имя обработанного файла
----------------------------------------------------------------------
1. TEST_CYC.CPP
----------------------------------------------------------------------
Таблица с результатами измерений ( используется 13 из 416 записей )
----------------------------------------------------------------------
Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)
----------------------------------------------------------------------
1 : 6 1 : 8 7.54 1 7.54
----------------------------------------------------------------------
1 : 8 1 : 10 15.09 1 15.09
----------------------------------------------------------------------
1 : 10 1 : 12 36.88 1 36.88
----------------------------------------------------------------------
1 : 12 1 : 14 73.75 1 73.75
----------------------------------------------------------------------
1 : 14 1 : 17 7.54 1 7.54
----------------------------------------------------------------------
1 : 17 1 : 20 15.09 1 15.09
----------------------------------------------------------------------
1 : 20 1 : 23 36.04 1 36.04
----------------------------------------------------------------------
1 : 23 1 : 26 72.08 1 72.08
----------------------------------------------------------------------
1 : 26 1 : 32 7.54 1 7.54
----------------------------------------------------------------------
1 : 32 1 : 38 15.09 1 15.09
----------------------------------------------------------------------
1 : 38 1 : 44 36.88 1 36.88
----------------------------------------------------------------------
1 : 44 1 : 50 72.91 1 72.91
----------------------------------------------------------------------
Вывод: структурная организация кода не влияет на время его выполнения (случай с циклами), а время выполнения цикла зависит от количества итераций (практически прямо пропорционально).