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

}

void main (void)

{

for (int i=0; i<1000; i++)

{

float x;

float ordr;

int done;

done = 0;

ordr = 1;

do{

if (ordr<0.0) {done = 1;}

else

{

do{

x = 5;

}while (x < 0.0);

printf("%f",bessy(x,ordr));

ordr = -1;

}

}while (done == 0);

}

}

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

Turbo Profiler Version 2.1 Sun Mar 21 11:56:47 2004

Program: G:\TC\LAB1_1.EXE

Execution Profile

Total time: 1.6833 sec

% of total: 99 %

Run: 1 of 1

Filter: All

Show: Time

Sort: Frequency

#LAB1_1#31 0.2836 sec 17% |**********************************************

#LAB1_1#37 0.2303 sec 14% |*************************************

#LAB1_1#28 0.2287 sec 14% |*************************************

#LAB1_1#38 0.1763 sec 10% |****************************

#LAB1_1#39 0.1755 sec 10% |****************************

#LAB1_1#40 0.0655 sec 4% |**********

#LAB1_1#41 0.0655 sec 4% |**********

#LAB1_1#30 0.0641 sec 3% |**********

#LAB1_1#26 0.0637 sec 3% |**********

#LAB1_1#27 0.0637 sec 3% |**********

#LAB1_1#76 0.0566 sec 3% |*********

#LAB1_1#7 0.0557 sec 3% |*********

#LAB1_1#21 0.0557 sec 3% |*********

#LAB1_1#42 0.0113 sec <1% |*

#LAB1_1#29 0.0088 sec <1% |*

#LAB1_1#87 0.0017 sec <1% |

#LAB1_1#83 0.0017 sec <1% |

#LAB1_1#73 0.0015 sec <1% |

#LAB1_1#17 0.0014 sec <1% |

#LAB1_1#24 0.0014 sec <1% |

#LAB1_1#46 0.0009 sec <1% |

#LAB1_1#80 0.0009 sec <1% |

#LAB1_1#18 0.0009 sec <1% |

#LAB1_1#35 0.0009 sec <1% |

#LAB1_1#9 0.0009 sec <1% |

#LAB1_1#63 0.0008 sec <1% |

#LAB1_1#6 0.0008 sec <1% |

#LAB1_1#44 0.0008 sec <1% |

#LAB1_1#32 0.0008 sec <1% |

#LAB1_1#20 0.0008 sec <1% |

#LAB1_1#19 0.0008 sec <1% |

#LAB1_1#34 0.0008 sec <1% |

#LAB1_1#85 0.0008 sec <1% |

#LAB1_1#8 0.0008 sec <1% |

#LAB1_1#74 0.0008 sec <1% |

#LAB1_1#60 0.0008 sec <1% |

#LAB1_1#22 0.0008 sec <1% |

#LAB1_1#43 0.0008 sec <1% |

#LAB1_1#45 0.0008 sec <1% |

bessy 0.0008 sec <1% |

#LAB1_1#81 0.0008 sec <1% |

#LAB1_1#23 0.0008 sec <1% |

#LAB1_1#33 0.0008 sec <1% |

#LAB1_1#67 0.0000 sec <1% |

_main 0.0000 sec <1% |

#LAB1_1#89 0.0000 sec <1% |

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

Turbo Profiler Version 2.1 Sun Mar 21 12:02:38 2004

Program: G:\TC\LAB1_1.EXE

Execution Profile

Total time: 1.6833 sec

% of total: 99 %

Run: 1 of 1

Filter: All

Show: Counts

Sort: Frequency

#LAB1_1#39 12000 7% |++++++++++++++++++++++++++++++++++++++++++++++

#LAB1_1#37 12000 7% |++++++++++++++++++++++++++++++++++++++++++++++

#LAB1_1#38 12000 7% |++++++++++++++++++++++++++++++++++++++++++++++

#LAB1_1#41 12000 7% |++++++++++++++++++++++++++++++++++++++++++++++

#LAB1_1#42 12000 7% |++++++++++++++++++++++++++++++++++++++++++++++

#LAB1_1#40 12000 7% |++++++++++++++++++++++++++++++++++++++++++++++

#LAB1_1#27 10000 6% |++++++++++++++++++++++++++++++++++++++

#LAB1_1#26 10000 6% |++++++++++++++++++++++++++++++++++++++

#LAB1_1#28 10000 6% |++++++++++++++++++++++++++++++++++++++

#LAB1_1#31 10000 6% |++++++++++++++++++++++++++++++++++++++

#LAB1_1#29 10000 6% |++++++++++++++++++++++++++++++++++++++

#LAB1_1#30 10000 6% |++++++++++++++++++++++++++++++++++++++

#LAB1_1#87 2000 1% |+++++++

#LAB1_1#76 2000 1% |+++++++

bessy 1000 <1% |+++

#LAB1_1#24 1000 <1% |+++

#LAB1_1#23 1000 <1% |+++

#LAB1_1#22 1000 <1% |+++

#LAB1_1#21 1000 <1% |+++

#LAB1_1#32 1000 <1% |+++

#LAB1_1#33 1000 <1% |+++

#LAB1_1#34 1000 <1% |+++

#LAB1_1#35 1000 <1% |+++

#LAB1_1#20 1000 <1% |+++

#LAB1_1#85 1000 <1% |+++

#LAB1_1#18 1000 <1% |+++

#LAB1_1#17 1000 <1% |+++

#LAB1_1#9 1000 <1% |+++

#LAB1_1#8 1000 <1% |+++

#LAB1_1#43 1000 <1% |+++

#LAB1_1#44 1000 <1% |+++

#LAB1_1#45 1000 <1% |+++

#LAB1_1#46 1000 <1% |+++

#LAB1_1#60 1000 <1% |+++

#LAB1_1#63 1000 <1% |+++

#LAB1_1#19 1000 <1% |+++

#LAB1_1#6 1000 <1% |+++

#LAB1_1#73 1000 <1% |+++

#LAB1_1#74 1000 <1% |+++

#LAB1_1#7 1000 <1% |+++

#LAB1_1#81 1000 <1% |+++

#LAB1_1#80 1000 <1% |+++

#LAB1_1#83 1000 <1% |+++

#LAB1_1#67 1 <1% |

_main 1 <1% |

#LAB1_1#89 1 <1% |

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

Turbo Profiler Version 2.1 Sun Mar 21 12:07:23 2004

Program: G:\TC\LAB1_1.EXE

Execution Profile

Total time: 1.6833 sec

% of total: 99 %

Run: 1 of 1

Filter: All

Show: Time per call

Sort: Frequency

#LAB1_1#20 0.0001 sec/call |**********************************************

#LAB1_1#7 0.0000 sec/call |***********************

#LAB1_1#34 0.0000 sec/call |***********************

#LAB1_1#60 0.0000 sec/call |***********************

#LAB1_1#76 0.0000 sec/call |***********

#LAB1_1#87 0.0000 sec/call |***********

#LAB1_1#31 0.0000 sec/call |******

#LAB1_1#38 0.0000 sec/call |*****

#LAB1_1#37 0.0000 sec/call |*****

#LAB1_1#41 0.0000 sec/call |*****

#LAB1_1#39 0.0000 sec/call |*****

#LAB1_1#29 0.0000 sec/call |****

#LAB1_1#27 0.0000 sec/call |****

#LAB1_1#40 0.0000 sec/call |**

#LAB1_1#42 0.0000 sec/call |**

#LAB1_1#83 0.0000 sec/call |

bessy 0.0000 sec/call |

#LAB1_1#30 0.0000 sec/call |

#LAB1_1#28 0.0000 sec/call |

#LAB1_1#32 0.0000 sec/call |

#LAB1_1#33 0.0000 sec/call |

#LAB1_1#26 0.0000 sec/call |

#LAB1_1#35 0.0000 sec/call |

#LAB1_1#24 0.0000 sec/call |

#LAB1_1#23 0.0000 sec/call |

#LAB1_1#22 0.0000 sec/call |

#LAB1_1#21 0.0000 sec/call |

#LAB1_1#19 0.0000 sec/call |

#LAB1_1#18 0.0000 sec/call |

#LAB1_1#43 0.0000 sec/call |

#LAB1_1#44 0.0000 sec/call |

#LAB1_1#45 0.0000 sec/call |

#LAB1_1#46 0.0000 sec/call |

#LAB1_1#17 0.0000 sec/call |

#LAB1_1#63 0.0000 sec/call |

_main 0.0000 sec/call |

#LAB1_1#67 0.0000 sec/call |

#LAB1_1#73 0.0000 sec/call |

#LAB1_1#74 0.0000 sec/call |

#LAB1_1#9 0.0000 sec/call |

#LAB1_1#80 0.0000 sec/call |

#LAB1_1#81 0.0000 sec/call |

#LAB1_1#8 0.0000 sec/call |

#LAB1_1#6 0.0000 sec/call |

#LAB1_1#85 0.0000 sec/call |

#LAB1_1#89 0.0000 sec/call |

Выводы: в результате анализа полученных данных можно сделать следующие выводы

  • Алгоритм в работает достаточно быстро и не требует модернизации (различные «усовершенствования» кода дают только ухудшение результатов)

  • У программы есть узкое место – это вывод на печать данных (Для паскаля удаление вывода на печать увеличило быстродействие в 20 раз (от 48,366 до 1,9175), для Си в 2 раза (от 3,7118 до 1,6833) )

  • Программа на С показывает лучшие результаты по быстродействию по сравнению с программой на Pascalе.

  • Были проведены 3 вида профилирования для С и Pascalя для более точной оценки быстродействия программ. Было проведено профилирование по времени выполнения

всей программы, по частоте вызова строк и по среднему времени на 1 вызов. Все виды профилирования дали приблизительно равнозначные результаты.

  • Программа Turbo Profiler дает не совсем верные результаты. Например 2 одинаковые операции по суммированию двух чисел, стоящие в одном цикле, имеют разную продолжительность (причем разница почти в 20 раз). Это связано с тем, что у Turbo Profiler слишком маленькая точность для современных машин. Так как сбор информации идет о каждой строке, то при различном размещении текста получаются разные результаты времени выполнения программы. Операторы ввода/вывода затеняют вычислительные операции. Но в то же время Turbo Profiler легко освоить.

19

Соседние файлы в папке 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