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

Обработка программ prost0.pas, prost0.c.

Turbo Profiler Version 2.1 Mon Mar 15 22:50:07 2004

Program: G:\UNIVER~1\86DED~1\0423~1\LAB_2\LAB2_1\ST_TPROF\BIN\PROST0.EXE File \

Time Counts

program prost;

{ Программа генерации простых чисел при помощи алгоритма Эвклида }

const maxprime=1000;

type

intarr=array[0..maxprime] of integer;

var

primes: intarr;

j,lastprime, curprime: integer;

0.0004 1 begin

0.0000 1 primes[0] := 2;

0.0000 1 primes[1] := 3;

0.0000 1 lastprime := 1;

0.0000 1 curprime := 3;

0.0000 1 writeln('prime0 = ', primes[0]);

0.0000 1 writeln('prime1 = ', primes[1]);

0.0004 499 while(curprime < MAXPRIME) do

begin

0.0004 498 for j := 0 to lastprime do

0.2332 15120 if((curprime mod primes[j]) = 0)

then begin

0.0002 333 curprime := curprime +2;

0.0003 333 break;

0.2331 14787 end;

0.0004 498 if((j+1) <= lastprime) then continue;

0.0001 166 lastprime:= lastprime+1;

0.0065 166 writeln('prime ', lastprime,'=', curprime);

0.0001 166 primes[lastprime] := curprime;

0.0001 166 curprime := curprime +2;

0.0001 166 end

0.0004 1 end.

Результаты профилирования по времени prost. pas

Execution Profile

Total time: 0.4763 sec

% of total: 100%

Run: 1 of 1

Display: Time

Filter: All

Sort: Frequency

PROST.20 0.2332 sec 48% | ===========================================

PROST.24 0.2331 sec 48% |==========================================

PROST.27 0.0065 sec 1% |=

PROST.9 0.0004 sec <1% |

PROST.17 0.0004 sec <1% |

PROST.19 0.0004 sec <1% |

PROST.25 0.0004 sec <1% |

PROST.31 0.0004 sec <1% |

PROST.23 0.0003 sec <1% |

PROST.22 0.0002 sec <1% |

PROST.26 0.0001 sec <1% |

PROST.30 0.0001 sec <1% |

PROST.28 0.0001 sec <1% |

PROST.29 0.0001 sec <1% |

PROST.15 0.0000 sec <1% |

PROST.16 0.0000 sec <1% |

PROST.13 0.0000 sec <1% |

PROST.12 0.0000 sec <1% |

PROST.10 0.0000 sec <1% |

PROST.11 0.0000 sec <1% |

Результаты профилирования по частоте prost. pas

Execution Profile

Total time: 0.4763 sec

% of total: 100%

Run: 1 of 1

Display: Count

Filter: All

Sort: Frequency

PROST.20 15120 45% |===========================================

PROST.24 14787 44% |==========================================

PROST.17 499 1% |=

PROST.25 498 1% |=

PROST.19 498 1% |=

PROST.23 333 1% |

PROST.22 333 1% |

PROST.28 166 <1% |

PROST.26 166 <1% |

PROST.29 166 <1% |

PROST.30 166 <1% |

PROST.27 166 <1% |

PROST.9 1 <1% |

PROST.16 1 <1% |

PROST.15 1 <1% |

PROST.13 1 <1% |

PROST.12 1 <1% |

PROST.10 1 <1% |

PROST.11 1 <1% |

PROST.31 1 <1% |

Результаты профилирования по средним временам на 1 вызов prost. pas

Execution Profile

Total time: 0.4763 sec

% of total: 100%

Run: 1 of 1

Display: Time per call

Filter: All

Sort: Frequency

PROST.9 0.0004 sec/call |===========================================

PROST.31 0.0004 sec/call |====================================

PROST.15 0.0000 sec/call |===

PROST.27 0.0000 sec/call |===

PROST.16 0.0000 sec/call |==

PROST.24 0.0000 sec/call |=

PROST.20 0.0000 sec/call |=

PROST.11 0.0000 sec/call |

PROST.19 0.0000 sec/call |

PROST.17 0.0000 sec/call |

PROST.10 0.0000 sec/call |

PROST.23 0.0000 sec/call |

PROST.13 0.0000 sec/call |

PROST.25 0.0000 sec/call |

PROST.26 0.0000 sec/call |

PROST.12 0.0000 sec/call |

PROST.28 0.0000 sec/call |

PROST.30 0.0000 sec/call |

PROST.29 0.0000 sec/call |

PROST.22 0.0000 sec/call |

Результаты профилирования по времени prost.c

Execution Profile

Total time: 0.7125 sec

% of total: 99 %

Run: 1 of 1

Display: Time

Filter: All

Sort: Frequency

#PROST_PAS#31 0.4751 sec 66%|===========================================

#PROST_PAS#22 0.0686 sec 9% |======

#PROST_PAS#17 0.0555 sec 7% |=====

#PROST_PAS#28 0.0553 sec 7% |=====

#PROST_PAS#19 0.0553 sec 7% |=====

#PROST_PAS#16 0.0006 sec <1% |

#PROST_PAS#21 0.0004 sec <1% |

#PROST_PAS#26 0.0003 sec <1% |

#PROST_PAS#24 0.0002 sec <1% |

#PROST_PAS#29 0.0002 sec <1% |

#PROST_PAS#30 0.0001 sec <1% |

#PROST_PAS#32 0.0001 sec <1% |

#PROST_PAS#33 0.0001 sec <1% |

_main 0.0000 sec <1% |

#PROST_PAS#14 0.0000 sec <1% |

#PROST_PAS#13 0.0000 sec <1% |

#PROST_PAS#11 0.0000 sec <1% |

#PROST_PAS#12 0.0000 sec <1% |

#PROST_PAS#35 0.0000 sec <1% |

Результаты профилирования по частоте prost. c

Execution Profile

Total time: 0.7125 sec

% of total: 99 %

Run: 1 of 1

Display: Counts

Filter: All

Sort: Frequency

#PROST_PAS#22 15122 82%|===========================================

#PROST_PAS#19 500 2% |=

#PROST_PAS#28 499 2% |=

#PROST_PAS#21 499 2% |=

#PROST_PAS#26 333 1% |

#PROST_PAS#29 333 1% |

#PROST_PAS#24 333 1% |

#PROST_PAS#31 166 <1% |

#PROST_PAS#32 166 <1% |

#PROST_PAS#33 166 <1% |

#PROST_PAS#30 166 <1% |

_main 1 <1% |

#PROST_PAS#17 1 <1% |

#PROST_PAS#16 1 <1% |

#PROST_PAS#14 1 <1% |

#PROST_PAS#13 1 <1% |

#PROST_PAS#11 1 <1% |

#PROST_PAS#12 1 <1% |

#PROST_PAS#35 1 <1% |

Результаты профилирования по средним временам на 1 вызов prost. c

Execution Profile

Total time: 0.7125 sec

% of total: 99 %

Run: 1 of 1

Display: Time per call

Filter: All

Sort: Frequency

#PROST_PAS#17 0.0555 sec/call |===========================================

#PROST_PAS#31 0.0028 sec/call |==

#PROST_PAS#16 0.0006 sec/call |

#PROST_PAS#28 0.0001 sec/call |

#PROST_PAS#19 0.0001 sec/call |

#PROST_PAS#22 0.0000 sec/call |

_main 0.0000 sec/call |

#PROST_PAS#21 0.0000 sec/call |

#PROST_PAS#14 0.0000 sec/call |

#PROST_PAS#24 0.0000 sec/call |

#PROST_PAS#26 0.0000 sec/call |

#PROST_PAS#13 0.0000 sec/call |

#PROST_PAS#29 0.0000 sec/call |

#PROST_PAS#30 0.0000 sec/call |

#PROST_PAS#12 0.0000 sec/call |

#PROST_PAS#32 0.0000 sec/call |

#PROST_PAS#11 0.0000 sec/call |

#PROST_PAS#33 0.0000 sec/call |

#PROST_PAS#35 0.0000 sec/call |

Выводы: Наиболее ресурсоемкой оказалась операция деления.

Так же к разряду «долгих» для выполнения команд можно отнести вывод на печать.

Обработка программ test_cyc.c, test_sub.c.

Программа test_cyc.c

#define Size 10000

int i, tmp, dim[Size];

void main()

{

for(i=0;i<Size/10;i++){ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

for(i=0;i<Size/5;i++){ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

for(i=0;i<Size/2;i++){ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

for(i=0;i<Size;i++) { tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

for(i=0;i<Size/10;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

for(i=0;i<Size/5;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

for(i=0;i<Size/2;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

for(i=0;i<Size;i++)

{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; };

for(i=0;i<Size/10;i++)

{ tmp=dim[0];

dim[0]=dim[i];

dim[i]=tmp;

};

for(i=0;i<Size/5;i++)

{ tmp=dim[0];

dim[0]=dim[i];

dim[i]=tmp;

};

for(i=0;i<Size/2;i++)

{ tmp=dim[0];

dim[0]=dim[i];

dim[i]=tmp;

};

for(i=0;i<Size;i++)

{ tmp=dim[0];

dim[0]=dim[i];

dim[i]=tmp;

};

}

Результаты профилирования по времени test_cyc.c

Execution Profile

Total time: 0.7233 sec

% of total: 99 %

Run: 1 of 1

Display: Time

Filter: All

Sort: Frequency

#TEST_СYC#35 0.2283 sec 31% |===========================================

#TEST_СYC#17 0.1735 sec 24% |=================================

#TEST_СYC#36 0.0638 sec 8% |============

#TEST_СYC#29 0.0593 sec 8% |===========

#TEST_СYC#31 0.0592 sec 8% |===========

#TEST_СУC#15 0.0592 sec 8% |===========

#TEST_СYC#20 0.0558 sec 7% |==========

#TEST_СУC#34 0.0088 sec 1% |=

#TEST_СYC#30 0.0044 sec <1% |

#TEST_СYC#26 0.0021 sec <1% |

#TEST_СYC#13 0.0017 sec <1% |

#TEST_СYC#25 0.0017 sec <1% |

#TEST_СYC#24 0.0017 sec <1% |

#TEST_СYC#21 0.0009 sec <1% |

#TEST_СYC#11 0.0009 sec <1%|

#TEST_СYC#19 0.0009 sec <1%|

#TEST_СYC#9 0.0001 sec <1% |

#TEST_СYC#8 0.0000 sec <1% |

#TEST_СYC#7 0.0000 sec <1% |

#TEST_СYC#6 0.0000 sec <1% |

_main 0.0000 sec <1% |

#TEST_СYC#28 0.0000 sec <1% |

#TEST_СYC#23 0.0000 sec <1% |

#TEST_СYC#18 0.0000 sec <1% |

#TEST_СYC#16 0.0000 sec <1% |

#TEST_СYC#33 0.0000 sec <1% |

#TEST_СYC#14 0.0000 sec <1% |

#TEST_СYC#10 0.0000 sec <1% |

#TEST_СYC#12 0.0000 sec <1% |

#TEST_СYC#38 0.0000 sec <1% |

Результаты профилирования по частоте test_сyc.c

Execution Profile

Total time: 0.7233 sec

% of total: 99 %

Run: 1 of 1

Display: Counts

Filter: All

Sort: Frequency

#TEST_СYC#17 10000 13% |===========================================

#TEST_СYC#36 10000 13% |===========================================

#TEST_СYC#34 10000 13% |===========================================

#TEST_СYC#35 10000 13% |===========================================

#TEST_СYC#15 5000 6% |=====================

#TEST_СYC#30 5000 6% |=====================

#TEST_СYC#29 5000 6% |=====================

#TEST_СYC#31 5000 6% |=====================

#TEST_СYC#24 2000 2% |========

#TEST_СYC#13 2000 2% |========

#TEST_СYC#26 2000 2% |========

#TEST_СYC#25 2000 2% |========

#TEST_СYC#21 1000 1% |====

#TEST_СYC#11 1000 1% |====

#TEST_СYC#20 1000 1% |====

#TEST_СУC#19 1000 1% |====

_main 1 <1% |

#TEST_СYC#23 1 <1% |

#TEST_СYC#18 1 <1% |

#TEST_СYC#16 1 <1% |

#TEST_СYC#14 1 <1% |

#TEST_СYC#28 1 <1% |

#TEST_СYC#12 1 <1% |

#TEST_СYC#10 1 <1% |

#TEST_СYC#9 1 <1% |

#TEST_СYC#33 1 <1% |

#TEST_СYC#8 1 <1% |

#TEST_СYC#6 1 <1% |

#TEST_СYC#7 1 <1% |

#TEST_СYC#38 1 <1% |

Результаты профилирования по средним временам на 1 вызов test_сyc.c

Execution Profile

Total time: 0.7233 sec

% of total: 99 %

Run: 1 of 1

Display: Time per call

Filter: All

Sort: Frequency

#TEST_СYC#9 0.0001 sec/call |===========================================

#TEST_СYC#20 0.0000 sec/call |=======================

#TEST_СYC#8 0.0000 sec/call |====================

#TEST_СYC#35 0.0000 sec/call |=========

#TEST_СYC#17 0.0000 sec/call |=======

#TEST_СYC#7 0.0000 sec/call |=======

#TEST_СYC#15 0.0000 sec/call |=====

#TEST_СYC#29 0.0000 sec/call |=====

#TEST_СYC#31 0.0000 sec/call |=====

#TEST_СYC#6 0.0000 sec/call |==

#TEST_СYC#36 0.0000 sec/call |==

_main 0.0000 sec/call |

#TEST_СYC#16 0.0000 sec/call |

#TEST_СYC#18 0.0000 sec/call |

#TEST_СYC#19 0.0000 sec/call |

#TEST_СYC#14 0.0000 sec/call |

#TEST_СYC#21 0.0000 sec/call |

#TEST_СYC#23 0.0000 sec/call |

#TEST_СYC#24 0.0000 sec/call |

#TEST_СYC#25 0.0000 sec/call |

#TEST_СYC#26 0.0000 sec/call |

#TEST_СYC#28 0.0000 sec/call |

#TEST_СYC#13 0.0000 sec/call |

#TEST_СYC#30 0.0000 sec/call |

#TEST_СYC#12 0.0000 sec/call |

#TEST_СYC#33 0.0000 sec/call |

#TEST_СYC#34 0.0000 sec/call |

#TEST_СУC#10 0.0000 sec/call |

#TEST_СYC#11 0.0000 sec/call |

#TEST_СYC#38 0.0000 sec/call |

По результатам проведенного профилирования можно сделать следующие выводы: когда цикл вместе с заголовком записан в одну строку, его выполнение занимает незначительный промежуток времени. Когда тело цикла записано в отдельную строку (без заголовка цикла) время выполнения цикла растет. Когда каждый оператор цикла (в том числе и заголовок) записан в отдельную строку, то уже рассматривается время выполнения каждого оператора по отдельности и в результате время выполнения всего цикла значительно возрастает.

Результаты профилирования test_sub.cpp

Программа test_sub.cpp

const unsigned Size = 1000;

void TestLoop(int nTimes)

{

static int TestDim[Size];

int tmp;

int iLoop;

while (nTimes > 0)

{

nTimes --;

iLoop = Size;

while (iLoop > 0)

{

iLoop -- ;

tmp = TestDim[0];

TestDim[0] = TestDim[nTimes];

TestDim[nTimes] = tmp;

}

}

} /* TestLoop */

void main()

{

TestLoop(Size / 10); // 100 * 1000 повторений

TestLoop(Size / 5); // 200 * 1000 повторений

TestLoop(Size / 2); // 500 * 1000 повторений

TestLoop(Size / 1); // 1000* 1000 повторений

}

Результаты профилирования по времени test_ sub.c

Execution Profile

Total time: 8.4911 sec

% of total: 99%

Run: 1 of 1

Display: Time

Filter: All

Sort: Frequency

#TEST_SUB#20 2.1170 sec 24% |===========================================

#TEST_SUB#17 1.8410 sec 21% |=====================================

#TEST_SUB#15 1.7300 sec 20% |===================================

#TEST_SUB#19 1.5658 sec 18% |===============================

#TEST_SUB#18 1.2367 sec 14% |=========================

#TEST_SUB#14 0.0001 sec <1% |

#TEST_SUB#10 0.0001 sec <1% |

#TEST_SUB#12 0.0001 sec <1% |

TestLoop 0.0000 sec <1% |

#TEST_SUB#28 0.0000 sec <1% |

#TEST_SUB#23 0.0000 sec <1% |

_main

#TEST_SUB#29 0.0000 sec <1% |

Результаты профилирования по частоте test_ sub.c

Execution Profile

Total time: 8.4911 sec

% of total: 99 %

Run: 1 of 1

Display: Counts

Filter: All

Sort: Frequency

#TEST_SUB#15 154975 20% |===========================================

#TEST_SUB#17 154221 19% |==========================================

#TEST_SUB#18 154221 19% |==========================================

#TEST_SUB#19 154220 19% |==========================================

#TEST_SUB#20 154220 19% |

#TEST_SUB#10 159 <1% |

#TEST_SUB#12 155 <1% |

#TEST_SUB#14 155 <1% |

TestLoop 2 <1% |

#TEST_SUB#23 1 <1% |

#TEST_SUB#28 1 <1% |

_main 1 <1% |

#TEST_SUB#29 1 <1% |

#TEST_SUB#31 2 <1% |

#TEST_SUB#30 2 <1% |

#TEST_SUB#32 1 <1% |

Результаты профилирования по средним временам на 1 вызов test_ sub.c

Execution Profile

Total time: 8.4911 sec

% of total: 99 %

Run: 1 of 1

Display: Time per call

Filter: All

Sort: Frequency

#TEST_SUB#20 0.0000 sec/call |===========================================

#TEST_SUB#17 0.0000 sec/call |======================================

#TEST_SUB#15 0.0000 sec/call |===================================

#TEST_SUB#19 0.0000 sec/call |=================================

#TEST_SUB#18 0.0000 sec/call |=========================

#TEST_SUB#28 0.0000 sec/call |=====

TestLoop 0.0000 sec/call |==

#TEST_SUB#14 0.0000 sec/call |==

#TEST_SUB#10 0.0000 sec/call |==

#TEST_SUB#23 0.0000 sec/call |==

#TEST_SUB#12 0.0000 sec/call |==

_main 0.0000 sec/call |==

#TEST_SUB#29 0.0000 sec/call |==

Выводы: как показали проведенные исследования дольше всех выполняется внутренний цикл подпрограммы. Время же команд вызова подпрограммы незначительно мало.

Обработка собственной программы

Программа bessy.pas

Turbo Profiler Version 2.1 Sat Mar 20 13:29:54 2004

Program: G:\UNIVER~1\86DED~1\0423~1\LAB_2\LAB_PAS\LAB1.EXE File \UNIVER~1\86DED

Time Counts

program besy;

var x,ordr : real;

done : boolean;

i : integer;

function bessy(x,n: real): real;

const small = 1.0E-8;

euler = 0.57721566;

pi = 3.1415926;

pi2 = 0.63661977;

var j : integer;

x2,sum,sum2,t,t2,

ts,term,xx,y0,y1,

ya,yb,yc,ans,a,b,

sina,cosa : real;

0.0008 1000 begin

0.0008 1000 if x<12 then

begin

0.0008 1000 xx:=0.5*x;

0.0557 1000 x2:=xx*xx;

0.0008 1000 t:=ln(xx)+euler;

0.0558 1000 sum:=0.0;

0.0012 1000 term:=t;

0.0008 1000 y0:=t;

0.0558 1000 j:=0;

repeat

0.1759 13000 j:=j+1;

0.1210 13000 if j<>1 then sum:=sum+1/(j-1);

0.0115 13000 ts:=t-sum;

0.2310 13000 term:=-x2*term/(j*j)*(1-1/(j*ts));

0.2311 13000 y0:=y0+term

0.2310 13000 until abs(term)<small;

0.0009 1000 term:=xx*(t-0.5);

0.0008 1000 sum:=0.0;

0.0008 1000 y1:=term;

0.0008 1000 j:=1;

repeat

0.1767 12000 j:=j+1;

0.0651 12000 sum:=sum+1/(j-1);

0.0101 12000 ts:=t-sum;

0.1751 12000 term:=(-x2*term)/(j*(j-1))*((ts-0.5/j)/(ts+0.5/(j-1)));

0.0103 12000 y1:=y1+term

0.1202 12000 until abs(term)<small;

0.0557 1000 y0:=pi2*y0;

0.0557 1000 y1:=pi2*(y1-1/x);

0.0557 1000 if n=0.0 then ans:=y0

0.0008 1000 else if n=1.0 then ans:=y1

else

begin

0 0 ts:=2.0/x;

0 0 ya:=y0;

0 0 yb:=y1;

0 0 for j:=2 to trunc(n+0.01) do

begin

Turbo Profiler Version 2.1 Sat Mar 20 13:29:54 2004

0 0 yc:=ts*(j-1)*yb-ya;

0 0 ya:=yb;

0 0 yb:=yc

0 0 end;

0 0 ans:=yc

end;

0.0009 1000 bessy:=ans;

0.0008 1000 end

0 0 else bessy:=sqrt(2/(pi*x))*sin(x-pi/4-n*pi/2)

0.0009 1000 end;

0.0005 1 begin

0.0000 1 for i:=1 to 1000 do

begin

0.0008 1000 done:=false;

0.0008 1000 ordr:=1;

repeat

0.0016 2000 if ordr<0.0 then done:=true

else

begin

repeat

0.0008 1000 x:=5;

0.0008 1000 until x>=0.0;

{writeln(}

0.0008 1000 bessy(x,ordr);

{);}

0.0008 1000 ordr:=-1;

end

0.0017 2000 until done

0.0009 1000 end;

0.0004 1 end.

Результаты профилирования по времени bessy.pas

Execution Profile

Total time: 1.9175 sec

% of total: 100%

Run: 1 of 1

Display: Time

Filter: All

Sort: Frequency

#BESSY_PAS#36 0.2311 sec 12% |===========================================

#BESSY_PAS#35 0.2310 sec 12% |==========================================

#BESSY_PAS#37 0.2310 sec 12% |==========================================

#BESSY_PAS#43 0.1767 sec 9% |================================

#BESSY_PAS#32 0.1759 sec 9% |================================

#BESSY_PAS#46 0.1751 sec 9% |================================

#BESSY_PAS#33 0.1210 sec 6% |======================

#BESSY_PAS#48 0.1202 sec 6% |======================

#BESSY_PAS#44 0.0651 sec 3% |============

#BESSY_PAS#27 0.0558 sec 2% |==========

#BESSY_PAS#30 0.0558 sec 2% |==========

#BESSY_PAS#49 0.0557 sec 2% |==========

#BESSY_PAS#25 0.0557 sec 2% |==========

#BESSY_PAS#50 0.0557 sec 2% |==========

#BESSY_PAS#51 0.0557 sec 2% |==========

#BESSY_PAS#34 0.0115 sec <1% |==

#BESSY_PAS#47 0.0103 sec <1% |=

#BESSY_PAS#45 0.0101 sec <1% |=

#BESSY_PAS#88 0.0017 sec <1% |

#BESSY_PAS#77 0.0016 sec <1% |

#BESSY_PAS#28 0.0012 sec <1% |

#BESSY_PAS#69 0.0009 sec <1% |

#BESSY_PAS#38 0.0009 sec <1% |

#BESSY_PAS#89 0.0009 sec <1% |

#BESSY_PAS#66 0.0009 sec <1% |

#BESSY_PAS#67 0.0008 sec <1% |

#BESSY_PAS#84 0.0008 sec <1% |

#BESSY_PAS#82 0.0008 sec <1% |

#BESSY_PAS#22 0.0008 sec <1% |

#BESSY_PAS#39 0.0008 sec <1% |

#BESSY_PAS#86 0.0008 sec <1% |

#BESSY_PAS#26 0.0008 sec <1% |

#BESSY_PAS#74 0.0008 sec <1% |

#BESSY_PAS#75 0.0008 sec <1% |

BESSY 0.0008

#BESSY_PAS#24 0.0008 sec <1% |

#BESSY_PAS#29 0.0008 sec <1% |

#BESSY_PAS#81 0.0008 sec <1% |

#BESSY_PAS#52 0.0008 sec <1% |

#BESSY_PAS#40 0.0008 sec <1% |

#BESSY_PAS#41 0.0008 sec <1% |

#BESSY_PAS#71 0.0005 sec <1% |

#BESSY_PAS#70 0.0005 sec <1% |

#BESSY_PAS#72 0.0005 sec <1% |

Результаты профилирования по частоте bessy.pas

Execution Profile

Total time: 1.9175 sec

% of total: 100 %

Run: 1 of 1

Display: Counts

Filter: All

Sort: Frequency

#BESSY_PAS#37 13000 7% |===========================================

#BESSY_PAS#36 13000 7% |===========================================

#BESSY_PAS#35 13000 7% |===========================================

#BESSY_PAS#34 13000 7% |===========================================

#BESSY_PAS#32 13000 7% |===========================================

#BESSY_PAS#33 13000 7% |===========================================

#BESSY_PAS#44 12000 6% |======================================

#BESSY_PAS#45 12000 6% |======================================

#BESSY_PAS#43 12000 6% |======================================

#BESSY_PAS#46 12000 6% |======================================

#BESSY_PAS#48 12000 6% |======================================

#BESSY_PAS#47 12000 6% |======================================

#BESSY_PAS#77 2000 1% |======

#BESSY_PAS#88 2000 1% |======

BESSY 1000 3% |===

#BESSY_PAS#38 1000 3% |===

#BESSY_PAS#39 1000 3% |===

#BESSY_PAS#40 1000 3% |===

#BESSY_PAS#41 1000 3% |===

#BESSY_PAS#30 1000 3% |===

#BESSY_PAS#22 1000 3% |===

#BESSY_PAS#28 1000 3% |===

#BESSY_PAS#27 1000 3% |===

#BESSY_PAS#26 1000 3% |===

#BESSY_PAS#25 1000 3% |===

#BESSY_PAS#49 1000 3% |===

#BESSY_PAS#50 1000 3% |===

#BESSY_PAS#51 1000 3% |===

#BESSY_PAS#52 1000 3% |===

#BESSY_PAS#66 1000 3% |===

#BESSY_PAS#67 1000 3% |===

#BESSY_PAS#69 1000 3% |===

#BESSY_PAS#29 1000 3% |===

#BESSY_PAS#89 1000 3% |===

#BESSY_PAS#74 1000 3% |===

#BESSY_PAS#75 1000 3% |===

#BESSY_PAS#24 1000 3% |===

#BESSY_PAS#81 1000 3% |===

#BESSY_PAS#84 1000 3% |===

#BESSY_PAS#82 1000 3% |===

#BESSY_PAS#86 1000 3% |===

#BESSY_PAS#72 1<1% |

#BESSY_PAS#71 1<1% |

#BESSY_PAS#90 1<1% |

Результаты профилирования по средним временам на 1 вызов bessy.pas

Execution Profile

Total time: 0,0040 sec

% of total: 100 %

Run: 1 of 1

Display: Time per call

Filter: All

Sort: Frequency

#BESSY_PAS#71 0.0005 sec/call |===========================================

#BESSY_PAS#90 0.0004 sec/call |=======

#BESSY_PAS#30 0.0000 sec/call |======

#BESSY_PAS#25 0.0000 sec/call|

#BESSY_PAS#50 0.0000 sec/call|

#BESSY_PAS#27 0.0000 sec/call|

#BESSY_PAS#51 0.0000 sec/call|

#BESSY_PAS#49 0.0000 sec/call|

#BESSY_PAS#35 0.0000 sec/call|

#BESSY_PAS#36 0.0000 sec/call|

#BESSY_PAS#37 0.0000 sec/call|

#BESSY_PAS#46 0.0000 sec/call|

#BESSY_PAS#43 0.0000 sec/call|

#BESSY_PAS#32 0.0000 sec/call|

#BESSY_PAS#33 0.0000 sec/call|

#BESSY_PAS#48 0.0000 sec/call|

#BESSY_PAS#44 0.0000 sec/call|

#BESSY_PAS#34 0.0000 sec/call|

#BESSY_PAS#41 0.0000 sec/call|

#BESSY_PAS#40 0.0000 sec/call|

#BESSY_PAS#39 0.0000 sec/call|

#BESSY_PAS#45 0.0000 sec/call|

#BESSY_PAS#29 0.0000 sec/call|

#BESSY_PAS#47 0.0000 sec/call|

#BESSY_PAS#38 0.0000 sec/call|

#BESSY_PAS#28 0.0000 sec/call|

#BESSY_PAS#26 0.0000 sec/call|

#BESSY_PAS#24 0.0000 sec/call|

#BESSY_PAS#52 0.0000 sec/call|

#BESSY_PAS#66 0.0000 sec/call|

#BESSY_PAS#67 0.0000 sec/call|

#BESSY_PAS#69 0.0000 sec/call|

#BESSY_PAS#22 0.0000 sec/call|

#BESSY_PAS#72 0.0000 sec/call|

#BESSY_PAS#74 0.0000 sec/call|

#BESSY_PAS#75 0.0000 sec/call|

#BESSY_PAS#77 0.0000 sec/call|

#BESSY_PAS#81 0.0000 sec/call|

#BESSY_PAS#82 0.0000 sec/call|

#BESSY_PAS#84 0.0000 sec/call|

#BESSY_PAS#86 0.0000 sec/call|

#BESSY_PAS#89 0.0000 sec/call|

#BESSY_PAS#88 0.0000 sec/call|

BESSY 0.0000 sec/call|

Программа bessy.c

#include <math.h>

#include <stdio.h>

float bessy (float x, float n)

{

const float small = 1.0E-8;

const float euler = 0.57721566;

const float pi = 3.1415926;

const float pi2 = 0.63661977;

int j;

float x2,sum,sum2,t,t2,

ts,term,xx,y0,y1,

ya,yb,yc,ans,a,b,

sina,cosa;

if (x<12) {

xx = 0.5 * x;

x2 = xx * xx;

t= log(xx) + euler;

sum = 0.0;

term = t;

y0 = t;

j = 0;

do{

j=j+1;

if (j != 1) {sum = sum + 1 / (j - 1);}

ts = t - sum;

term = -x2 * term / (j * j)*(1 - 1/(j * ts));

y0 = y0 + term;

}while ( fabs(term) >= small);

term = xx * (t - 0.5);

sum = 0.0;

y1 = term;

j = 1;

do{

j = j + 1;

sum = sum + 1.0 / (j - 1);

ts = t - sum;

term = (-x2 * term)/(j * (j - 1))*((ts - 0.5/j)/(ts + 0.5/(j - 1)));

y1 = y1 + term;

}while (fabs(term) >= small);

y0 = pi2 * y0;

y1 = pi2 * (y1 - 1/x);

if (n==0.0) {ans = y0;}

else {if (n==1.0) {ans = y1;}

else

{

ts = 2.0 / x;

ya = y0;

yb = y1;

for (j=2; j<ceil(n+0.01);j+1)

{

yc = ts * (j - 1) * yb - ya;

ya = yb;

yb = yc;

}

ans = yc;

}}

return ans;

}

else return sqrt(2 /(pi * x)) * sin(x - pi/4 - n * pi/2);

Соседние файлы в папке Lap_2
  • #
    01.05.20144.46 Кб16AHMED1.LST
  • #
    01.05.20146.6 Кб16AHMED2.LST
  • #
    01.05.20144.3 Кб16AHMED3.LST
  • #
    01.05.20145.84 Кб16AHMED4
  • #
    01.05.20146.7 Кб17LAP_1_CE.LST
  • #
    01.05.2014166.91 Кб20Lap_2.doc
  • #
    01.05.201476.29 Кб20Lap_2_1.doc