Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа №21.doc
Скачиваний:
17
Добавлен:
01.05.2014
Размер:
1.02 Mб
Скачать

4. Профилирование программы из лабораторной работы 1

4.1. Отчет по модулям

Время выполнения модуля lab1.exeзанимает 75,34% времени ЦП.

4.2. Отчет по процессам

Process Module CPU% Samples PID 32-bit 16-bit V8086

Lab1.exe Lab1.exe "75,3" 1124 212 1124 0 0

Lab1.exe ntoskrnl.exe "0,7" 10 212 10 0 0

Lab1.exe LTSMT.sys "0,5" 8 212 8 0 0

Lab1.exe Ntfs.sys "0,4" 6 212 6 0 0

Lab1.exe hal.dll "0,3" 4 212 4 0 0

Lab1.exe win32k.sys "0,1" 2 212 2 0 0

Lab1.exe ntdll.dll "0,1" 2 212 2 0 0

4.3. Представление результатов в исходном коде

Address

Line

counts

relative

Clockticks

Source

 

1

 

 

#include <stdlib.h>

 

2

 

 

#include <stdio.h>

 

3

 

 

 

4

 

 

const int Size = 1000;

 

5

 

 

 

6

 

 

void swap(float& p, float& q)

01:0030

7

217

19,31%

14,54%

{

01:0048

8

114

10,14%

7,64%

float hold=p;

01:0050

9

21

1,87%

1,41%

p=q;

01:005A

10

10

0,89%

0,67%

q=hold;

01:0062

11

21

1,87%

1,41%

}

 

12

 

 

 

13

 

 

void sort(float* a, int n)

01:0080

14

 

 

{

 

15

 

 

int done;

01:0098

16

 

 

int jump=n,i,j;

01:009E

17

 

 

while (jump>1)

 

18

 

 

{

01:00A8

19

 

 

jump/=2;

 

20

 

 

do

 

21

 

 

{

01:00B3

22

 

 

done=1;

01:00BA

23

178

15,84%

11,93%

for (j=0; j<n-jump; ++j)

 

24

 

 

{

01:00D7

25

40

3,56%

2,68%

i=j+jump;

01:00E0

26

365

32,47%

24,46%

if (a[j]>a[i])

 

27

 

 

{

01:00F9

28

78

6,94%

5,23%

swap(a[j],a[i]);

01:0115

29

 

 

done=0;

 

30

 

 

}

01:011C

31

51

4,54%

3,42%

}

01:011E

32

 

 

}while(!done);

01:0124

33

 

 

}

01:0129

34

 

 

}

 

35

 

 

 

36

 

 

int main()

01:0170

37

 

 

{

01:018E

38

 

 

for (int it=0; it<500; ++it)

 

39

 

 

{

 

40

 

 

float list[Size];

01:01A9

41

 

 

srand(0);

01:01B3

42

3

0,27%

0,20%

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

01:01DA

43

8

0,71%

0,54%

list[i]=rand();

01:01FA

44

 

 

sort(list, Size);

01:020E

45

 

 

}

01:0210

46

 

 

return 0;

01:0212

47

 

 

 

}

Основное узкое место программы – строка 26: доступ к элементам массивов и условный оператор и функция swap. Устранить эти узкие места не представляется возможным…