- •2007 Г.
- •1. Формулировка задания
- •2. Выполнение работы
- •2.1.1 Профилирование программы test_cyc.C
- •2.1.2 Профилирование программы test_sub.C
- •2.2.1.1 Профилирование программы c1.Cpp(измерение времени полного выполнения программы)
- •2.2.1.2 Профилирование программы c1.Cpp(измерение времен выполнения функциональных участков)
- •2.2.1.3 Профилирование оптимизированной программы c2.Cpp(измерение времени полного выполнения программы)
- •2.2.1.4 Профилирование оптимизированной программы c2.Cpp(измерение времен выполнения функциональных участков)
- •2.2.2.1 Профилирование программы pas1.Pas(измерение времени полного выполнения программы)
- •2.2.2.2 Профилирование программы pas1.Pas(измерение времен выполнения функциональных участков)
- •2.2.2.3 Профилирование оптимизированной программы pas2.Pas(измерение времени полного выполнения программы)
- •2.2.2.4 Профилирование оптимизированной программы pas2.Pas(измерение времен выполнения функциональных участков)
- •3. Выводы
2.2.2.3 Профилирование оптимизированной программы pas2.Pas(измерение времени полного выполнения программы)
Исходный текст программы:
uses sampler;
const szUnit: String = 'pas2.pas';
max = 20;
type ary = array[1..max] of real;
var x,y,y_calc:ary;
i,k:integer;
a,b:real;
sum_x,sum_y,sum_xy,sum_x2,
sum_y2,xi,yi,sxy,sxx,
syy: real;
begin
Sample ( szUnit,1 ) ;
{creating new mass x and y}
for k:=1 to 80 do
begin
randomize;
writeln('Input Data: ');
for i:=1 to max do
begin
x[i] := i*10;
y[i] := i*10 + random(20) - 10;
end;
{ linfit1(x,y,y_calc,a,b,max);}
sum_x:=0.0;
sum_y:=0.0;
sum_xy:=0.0;
sum_x2:=0.0;
sum_y2:=0.0;
for i:=1 to max do
begin
xi:=x[i];
yi:=y[i];
sum_x:=sum_x+xi;
sum_y:=sum_y+yi;
sum_xy:=sum_xy+xi*yi;
sum_x2:=sum_x2+xi*xi;
sum_y2:=sum_y2+yi*yi;
end;
sxx:=sum_x2-sum_x*sum_x/max;
sxy:=sum_xy-sum_x*sum_y/max;
syy:=sum_y2-sum_y*sum_y/max;
b:=sxy/sxx;
a:=((sum_x2*sum_y-sum_x*sum_xy)/max)/sxx;
for i:=1 to max do
y_calc[i]:=a+b*x[i];
writeln('a: ',a:3:1,' b: ',b:3:1);
for i:=1 to max do
writeln('yn',y_calc[i]:3:1);
end;
Sample ( szUnit,2 ) ;
end.
Результаты профилирования:
Отчет о результатах измерений для программы pas2.pas
Создан программой Sampler ( версия от Feb 15 1999 )
1995-98 (c) СПбГЭТУ, Мойсейчук Леонид.
Список обработанных файлов.
----------------------------------------------------------------------
NN Имя обработанного файла
----------------------------------------------------------------------
1. PAS2.PAS
----------------------------------------------------------------------
Таблица с результатами измерений ( используется 2 из 416 записей )
----------------------------------------------------------------------
Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)
----------------------------------------------------------------------
1 : 1 1 : 2 167072.86 1 167072.86
----------------------------------------------------------------------
2.2.2.4 Профилирование оптимизированной программы pas2.Pas(измерение времен выполнения функциональных участков)
Исходный текст программы:
uses sampler;
const szUnit: String = 'pas2.pas';
max = 20;
type ary = array[1..max] of real;
var x,y,y_calc:ary;
i,k:integer;
a,b:real;
sum_x,sum_y,sum_xy,sum_x2,
sum_y2,xi,yi,sxy,sxx,
syy: real;
begin
{creating new mass x and y}
for k:=1 to 80 do
begin
Sample ( szUnit,1 ) ;
randomize;
Sample ( szUnit,2 ) ;
writeln('Input Data: ');
Sample ( szUnit,3 ) ;
for i:=1 to max do
begin
x[i] := i*10;
y[i] := i*10 + random(20) - 10;
end;
Sample ( szUnit,4 ) ;
sum_x:=0.0;
sum_y:=0.0;
sum_xy:=0.0;
sum_x2:=0.0;
sum_y2:=0.0;
for i:=1 to max do
begin
xi:=x[i];
yi:=y[i];
sum_x:=sum_x+xi;
sum_y:=sum_y+yi;
sum_xy:=sum_xy+xi*yi;
sum_x2:=sum_x2+xi*xi;
sum_y2:=sum_y2+yi*yi;
end;
sxx:=sum_x2-sum_x*sum_x/max;
sxy:=sum_xy-sum_x*sum_y/max;
syy:=sum_y2-sum_y*sum_y/max;
b:=sxy/sxx;
a:=((sum_x2*sum_y-sum_x*sum_xy)/max)/sxx;
for i:=1 to max do
y_calc[i]:=a+b*x[i];
Sample ( szUnit,5 ) ;
writeln('a: ',a:3:1,' b: ',b:3:1);
Sample ( szUnit,6 ) ;
for i:=1 to max do
writeln('yn',y_calc[i]:3:1);
Sample ( szUnit,7 ) ;
end;
end.
Результаты профилирования:
Отчет о результатах измерений для программы pas2.pas
Создан программой Sampler ( версия от Feb 15 1999 )
1995-98 (c) СПбГЭТУ, Мойсейчук Леонид.
Список обработанных файлов.
----------------------------------------------------------------------
NN Имя обработанного файла
----------------------------------------------------------------------
1. PAS2.PAS
----------------------------------------------------------------------
Таблица с результатами измерений ( используется 7 из 416 записей )
----------------------------------------------------------------------
Исх.Поз. Прием.Поз. Общее время(мкс) Кол-во прох. Среднее время(мкс)
----------------------------------------------------------------------
1 : 1 1 : 2 645.33 80 8.07
----------------------------------------------------------------------
1 : 2 1 : 3 676.34 80 8.45
----------------------------------------------------------------------
1 : 3 1 : 4 522.97 80 6.54
----------------------------------------------------------------------
1 : 4 1 : 5 2291.36 80 28.64
----------------------------------------------------------------------
1 : 5 1 : 6 5236.43 80 65.46
----------------------------------------------------------------------
1 : 6 1 : 7 112371.14 80 1404.64
----------------------------------------------------------------------
1 : 7 1 : 1 32.69 79 0.41
----------------------------------------------------------------------