- •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. Выводы
2.2.1.3 Профилирование оптимизированной программы linefit1.CPp(измерение времени полного выполнения программы)
Исходный текст программы:
#include <stdlib.h>
#include <stdio.h>
#include "Sampler.h"
#define size 20
void main(void)
{
SAMPLE;//9
int i,k;
double a,b,x[size],y[size],y_calc[size];
double sum_x,sum_y,sum_xy,sum_x2,sum_y2,xi,yi,sxy,sxx,syy;
for (k=0;k<80;k++)
{
randomize();
printf("Input Data: \n");
for (i=0;i<size;i++)
{
x[i] = 10+i*10;
y[i] = 10+i*10 + random(20) - 10;
}
sum_x = 0;
sum_y = 0;
sum_xy = 0;
sum_x2 = 0;
sum_y2 = 0;
for (i=0; i<size; i++)
{
xi=x[i];
yi=y[i];
sum_x += xi;
sum_y += yi;
sum_xy += xi*yi;
sum_x2 += xi*xi;
sum_y2 += yi*yi;
}
sxx = sum_x2-sum_x*sum_x/size;
sxy = sum_xy-sum_x*sum_y/size;
syy = sum_y2-sum_y*sum_y/size;
b=sxy/sxx;
a=((sum_x2*sum_y-sum_x*sum_xy)/size)/sxx;
for (i=0;i<size;i++)
y_calc[i] = a + b * x[i];
printf("a %3.1f,b %3.1f\n",a,b);
for (i=0;i<size;i++)
printf("y %3.1f\n",y_calc[i]);
}
SAMPLE;//54
}
Результаты профилирования:
Отчет о результатах измерений для программы MY_ALL_O.EXE.
Создан программой Sampler ( версия от Feb 15 1999 )
1995-98 (c) СПбГЭТУ, Мойсейчук Леонид.
Список обработанных файлов.
----------------------------------------------------------------------
NN Имя обработанного файла
----------------------------------------------------------------------
1. MY_ALL_O.CPP
----------------------------------------------------------------------
Таблица с результатами измерений ( используется 2 из 416 записей )
----------------------------------------------------------------------
Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)
----------------------------------------------------------------------
1 : 9 1 : 54 100946.21 1 100946.21
----------------------------------------------------------------------
2.2.1.4 Профилирование оптимизированной программы linefit1.CPp(измерение времен выполнения функциональных участков)
Исходный текст программы:
#include <stdlib.h>
#include <stdio.h>
#include "Sampler.h"
#define size 20
void main(void)
{
int i,k;
double a,b,x[size],y[size],y_calc[size];
double sum_x,sum_y,sum_xy,sum_x2,sum_y2,xi,yi,sxy,sxx,syy;
for (k=0;k<80;k++)
{
SAMPLE;//15
randomize();
SAMPLE;//17
printf("Input Data: \n");
SAMPLE;//19
for (i=0;i<size;i++)
{
x[i] = 10+i*10;
y[i] = 10+i*10 + random(20) - 10;
}
SAMPLE;//25
sum_x = 0;
sum_y = 0;
sum_xy = 0;
sum_x2 = 0;
sum_y2 = 0;
for (i=0; i<size; i++)
{
xi=x[i];
yi=y[i];
sum_x += xi;
sum_y += yi;
sum_xy += xi*yi;
sum_x2 += xi*xi;
sum_y2 += yi*yi;
}
sxx = sum_x2-sum_x*sum_x/size;
sxy = sum_xy-sum_x*sum_y/size;
syy = sum_y2-sum_y*sum_y/size;
b=sxy/sxx;
a=((sum_x2*sum_y-sum_x*sum_xy)/size)/sxx;
for (i=0;i<size;i++)
y_calc[i] = a + b * x[i];
SAMPLE;//48
printf("a %3.1f,b %3.1f\n",a,b);
SAMPLE;//50
for (i=0;i<size;i++)
printf("y %3.1f\n",y_calc[i]);
SAMPLE;//53
}
}
Результаты профилирования:
Отчет о результатах измерений для программы MY_NAR_O.EXE.
Создан программой Sampler ( версия от Feb 15 1999 )
1995-98 (c) СПбГЭТУ, Мойсейчук Леонид.
Список обработанных файлов.
----------------------------------------------------------------------
NN Имя обработанного файла
----------------------------------------------------------------------
1. MY_NAR_O.CPP
----------------------------------------------------------------------
Таблица с результатами измерений ( используется 7 из 416 записей )
----------------------------------------------------------------------
Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)
----------------------------------------------------------------------
1 : 15 1 : 17 40756.63 80 509.46
----------------------------------------------------------------------
1 : 17 1 : 19 2843.66 80 35.55
----------------------------------------------------------------------
1 : 19 1 : 25 426.59 80 5.33
----------------------------------------------------------------------
1 : 25 1 : 48 174.32 80 2.18
----------------------------------------------------------------------
1 : 48 1 : 50 57827.82 80 722.85
----------------------------------------------------------------------
1 : 50 1 : 53 4177.91 80 52.22
----------------------------------------------------------------------
1 : 53 1 : 15 56.99 79 0.72
----------------------------------------------------------------------