- •Аннотация.
- •Содержание.
- •1. Введение.
- •2. Основная концепция Sampler’а.
- •3. Описание программы.
- •4. Применение программы.
- •4.1. Одномодульная программа на языке с.
- •4.2. Многомодульная программа на языке с.
- •4.4. Одномодульная программа на языке Паскаль.
- •4.4. Отключение профилирования.
- •4.5. Повышение точности профилирования.
- •V.A.K. Group (спгту 1995-1999)
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
----------------------------------------------------------------------