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

4.1. Одномодульная программа на языке с.

Для профилирования одномодульной программы достаточно включить заголовочный файл Sampler.h (строка 2 текста примера), расставить точки измерения ( SAMPLE ) и откомпилировать программу.

Пример программы (Single.cpp), вводящей символы с клавиатуры и осуществляющей выход по символу ‘q’ :

#include <StdIO.h>

#include "Sampler.h"

int main()

{

printf ( "\nSingle module test.\n" );

SAMPLE;

do

{

TIMING;

if ( getchar() == 'q' ) break ;

TIMING;

} while(1);

SAMPLE;

return 0;

} // main

Получить исполняемый модуль (Single.exe) можно при помощи следующей строки (Single.bat)

bcc single.cpp

Полученный исполняемый модуль запускается следующей командой :

Sampler.exe Single.exe

В результате получим следующий файл профиля (Single.smp) :

Отчет о результатах измерений для программы single.exe.

Создан программой Sampler ( версия Feb 15 1999 )

1995-98 (c) СПбГЭТУ, Мойсейчук Леонид.

Список обработанных файлов.

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

NN Имя обработанного файла

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

1. single.cpp

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

Таблица с результатами измерений ( используется 4 из 860 записей )

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

Исх.Поз. Прием.Поз. Общее время (мкс) Кол-во прох. Среднее время (мкс)

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

1 : 9 1 : 13 0.00 1 0.00

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

1 : 13 1 : 15 22.71 118 0.19

1 : 13 1 : 18 0.99 1 0.99

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

1 : 15 1 : 13 6.43 118 0.05

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

4.2. Многомодульная программа на языке с.

Для профилирования многомодульной программы требуется включить заголовочный файл Sampler.h (строка 2 текста примера Multiply.cpp) в основной модуль программы, в остальные модули трубуется включать Sampler.h исключив реализацию (смотрите ValidCh.cpp и GetChar.cpp) :

#define EXCLUDE_IMPLEMENTATION

#include “Sampler.h”

Далее следует расставить точки измерения (SAMPLE) и откомпилировать программу.

Пример многомодульной программы , вводящей символы с клавиатуры и осуществляющей выход по символу ‘q’ :

Основной модуль программы (Multiply.cpp) :

#include <StdIO.h>

#include "Sampler.h"

extern char GetChar();

extern int IsValidChar( char );

int main()

{

printf ( "\nMultiply module test.\n" );

TIMING;

do

{

TIMING;

if ( IsValidChar( GetChar())==0 ) break ;

TIMING;

} while(1);

TIMING ;

return 0;

} // main

Модуль ввода символов с клавиатуры (GetChar.cpp) :

#define EXCLUDE_IMPLEMENTATION

#include "Sampler.h"

#include <StdIO.h>

char GetChar()

{

TIMING;

char cc = getchar();

TIMING;

return cc;

}

Модуль проверки символов на корректность (ValidCh.cpp) :

#define EXCLUDE_IMPLEMENTATION

#include "Sampler.h"

int IsValidChar( char cc )

{

TIMING;

int valid = cc != 'q' ;

TIMING ;

return valid ;

}

Получить исполняемый модуль (Multiply.exe) можно при помощи команды (Multiply.bat)

bcc Multiply.cpp GetChar.cpp ValidCh.cpp

Полученный исполняемый модуль запускается следующей командой :

Sampler.exe Multiply.exe

В результате получим следующий файл профиля (Multiply.smp) :

Отчет о результатах измерений для программы multiply.exe.

Создан программой Sampler ( версия Feb 15 1999 )

1995-98 (c) СПбГЭТУ, Мойсейчук Леонид.

Список обработанных файлов.

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

NN Имя обработанного файла

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

1. multiply.cpp

2. getchar.cpp

3. validch.cpp

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

Таблица с результатами измерений ( используется 8 из 860 записей )

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

Исх.Поз. Прием.Поз. Общее время (мкс) Кол-во прох. Среднее время (мкс)

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

1 : 11 1 : 15 0.00 1 0.00

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

1 : 15 2 : 9 5.94 109 0.05

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

1 : 17 1 : 15 5.88 108 0.05

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

2 : 9 2 : 11 19.47 109 0.17

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

2 : 11 3 : 6 5.94 109 0.05

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

3 : 6 3 : 8 5.99 109 0.05

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

3 : 8 1 : 17 5.88 108 0.05

3 : 8 1 : 20 0.00 1 0.00

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

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