Федеральное государственное образовательное учреждение
высшего профессионального образования
Санкт-Петербургский электротехнический университет (ЛЭТИ)
Кафедра МОЭВМ
Отчет по лабораторной работе №2
«Ознакомление с возможностями профилировщика VTune»
Вариант 15
-
Выполнил :
Судаков И.А. гр. 3351
Проверил :
Боханова Е.В.
Санкт-Петербург
2007 Формулировка задания
1. Ознакомиться с документацией на VTuneи выполнить
для программы prost0.cследующее задание:
- компиляция с использованием автономного отладчика;
- профилирование по времени;
- профилирование по частоте;
- профилирование по средним временам на 1 вызов;
- запись результатов профилирования в файл для печати.
2. Выполнить тестовые программstest_cy1.c,test_cyc.c,
test_sub.ccанализом параметров повторения циклов и проверкой
их влияния на точность и чувствительность профилирования.
3. Скомпилировать и выполнить под управлением профилировщика VTune
программы на Паскале и С, разработанные в 1-ой лабораторной работе.
Снять все виды профилей, выявить "узкие места", ввести в
программы усовершенствования и получить новые профили. Если
времена выполнения рассматриваемых при профилировании фрагментов
программы малы для учета VTun'ом, ввести вспомогательное зацикливание
программы.
Испытания проводились на машине с процессором Intel Pentium 4 3.00ГГц под управлением ОСMicrosoft Windows XP Service Pack 2
1. Test_cyc.C
Анализ параметров повторения циклов.
Address |
Line |
Clockticks |
Source |
|
1 |
|
#define Size 1000000 |
|
2 |
|
int i, tmp, dim[Size] |
|
3 |
|
|
01:0168 |
4 |
|
void main() |
|
5 |
|
{ |
01:016B |
6 |
1.76% |
for(i=0;i<Size/10;i++){ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; }; |
01:01B7 |
7 |
3.85% |
for(i=0;i<Size/5;i++){ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; }; |
01:0203 |
8 |
9.36% |
for(i=0;i<Size/2;i++){ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; }; |
01:024F |
9 |
18.86% |
for(i=0;i<Size;i++) { tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; }; |
01:029B |
10 |
|
for(i=0;i<Size/10;i++) |
01:02A4 |
11 |
1.76% |
{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; }; |
01:02E7 |
12 |
|
for(i=0;i<Size/5;i++) |
01:02F0 |
13 |
3.74% |
{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; }; |
01:0333 |
14 |
|
for(i=0;i<Size/2;i++) |
01:033C |
15 |
9.12% |
{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; }; |
01:037F |
16 |
|
for(i=0;i<Size;i++) |
01:0388 |
17 |
18.46% |
{ tmp=dim[0]; dim[0]=dim[i]; dim[i]=tmp; }; |
01:03CB |
18 |
|
for(i=0;i<Size/10;i++) |
01:03D4 |
19 |
0.27% |
{ tmp=dim[0]; |
01:03E0 |
20 |
0.89% |
dim[0]=dim[i]; |
01:03F2 |
21 |
0.69% |
dim[i]=tmp; |
|
22 |
|
}; |
01:0417 |
23 |
|
for(i=0;i<Size/5;i++) |
01:0420 |
24 |
0.44% |
{ tmp=dim[0]; |
01:042C |
25 |
1.65% |
dim[0]=dim[i]; |
01:043E |
26 |
1.56% |
dim[i]=tmp; |
|
27 |
|
}; |
01:0463 |
28 |
|
for(i=0;i<Size/2;i++) |
01:046C |
29 |
1.11% |
{ tmp=dim[0]; |
01:0478 |
30 |
4.63% |
dim[0]=dim[i]; |
01:048A |
31 |
3.42% |
dim[i]=tmp; |
|
32 |
|
}; |
01:04AF |
33 |
|
for(i=0;i<Size;i++) |
01:04B8 |
34 |
2.54% |
{ tmp=dim[0]; |
01:04C4 |
35 |
8.12% |
dim[0]=dim[i]; |
01:04D6 |
36 |
7.81% |
dim[i]=tmp; |
|
37 |
|
}; |
01:04FB |
38 |
|
} |