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

4.2. Профилирование программы «Main_p»

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

BEGIN

for cycle := 1 to cyc_count do begin

SAMPLE(PName,1);

ClrScr;

SAMPLE(PName,2);

seed:=4.0;

SAMPLE(PName,3);

get_data(x,y,n);

SAMPLE(PName,4);

write_data;

SAMPLE(PName,5);

{----------------------------------------- Calculative part starts }

{ Accumulating statistics }

sumx := 0; sumy := 0; sumxy := 0; sumx2 := 0;

for k:=1 to n do begin

sumx := sumx + x[k];

sumy := sumy + y[k];

sumxy := sumxy + x[k] * y[k];

sumx2 := sumx2 + x[k] * x[k];

end;

{ Recieving verdict }

resa := (sumxy - sumx*sumy/n) / (sumx2 - sumx*sumx/n);

resb := (sumy - resa * sumx) / n;

SAMPLE(PName,6);

writeln('Approximated with y=ax+b where a = ',resa,', b=',resb);

{------------------------------------------- Calculative part ends }

SAMPLE(PName,7);

end;

END.

Результаты профилирования такой программы приведены ниже:

----------------------------------------------------------------------

Область программы Общее время Кол-во прох. Ср. время

----------------------------------------------------------------------

Вызов функции очистки экрана 206.19 20 10.31

----------------------------------------------------------------------

Подготовка к генерации данных 2.15 20 0.11

----------------------------------------------------------------------

Генерация данных 1554.47 20 77.72

----------------------------------------------------------------------

Вывод данных на экран 9328.03 20 466.40

----------------------------------------------------------------------

Расчёт результатов 271.66 20 13.58

----------------------------------------------------------------------

Вывод результатов на экран 331.51 20 16.58

----------------------------------------------------------------------

К данной программе применяется оптимизация, описанная в п. 4.1. Результаты оптимизации приведены в п. 3 настоящего отчёта. Исключение некоторых секций программы позволило сократить время выполнения программы с 6652.48 до 2123.90 микросекунд.

Выводы

В результате выполнения лабораторной работы были освоены приёмы работы с программой профилировщиком «Sampler». Основным результатом работы стало профилирование и оптимизация программ лабораторной работы №1. Применение программы «Sampler» позволило сделать следующие выводы:

  • операции вывода на экран в Паскале реализованы эффективнее, нежели объектно-ориентированный вывод через потоки Си++;

  • расчётные операции реализованы в Си++ несколько эффективнее, нежели чем в Паскале;

  • программы на Си++ поддаются оптимизации охотнее, чем программы на Паскале, поскольку выводом на экран можно иногда пренебречь, а вычислительными операциями – нет.

По сравнению с программой «TurboProfiler», профилировщик «Sampler» имеет следующие достоинства:

  • высокая разрешающая способность измерений, позволяющая производить измерение времени выполнения даже маленьких участков кода;

  • высокая точность измерений, связанная с низким процентом накладных расходов на проведение замеров времени.

Санкт-Петербургский Государственный Электротехнический Университет

Кафедра МО ЭВМ

Отчёт о выполнении лабораторной работы №__3__

Дисциплина:______Метрология программного обеспечения___________

Название работы:___Измерение характеристик динамической сложности__

___программ с помощью профилировщика «Sampler»___

Выполнил:

Сидорцов В. (гр. 1305)

Преподаватель:

Кирьянчиков В.А.

Санкт-Петербург

Соседние файлы в папке Lab3