PROFIL(2) PROFIL(2)
НАЗВАНИЕ
profil - подготовка временного профиля программы
СИНТАКСИС
void profil (buff, bufsiz, offset, scale)
char *buff;
int bufsiz, offset, scale;
ОПИСАНИЕ
Аргумент buff указывает на область памяти, размер кото-
рой в байтах задается аргументом bufsiz. После выполне-
ния данного системного вызова при каждом такте часов
анализируется счетчик команд: из него вычитается значе-
ние offset и полученная разность умножается на коэффи-
циент scale. Если результат соответствует какому-либо
элементу внутри области buff, то данный элемент увели-
чивается на 1. Элемент определяется как последователь-
ность байт длины sizeof(short).
Коэффициент scale интерпретируется как беззнаковая де-
нормализованная двоичная дробь с фиксированной точкой,
стоящей слева от границы полуслова. Так, коэффициент
0177777 (восьмеричное) дает взаимно-однозначное отобра-
жение значений счетчика команд на элементы области
buff; 077777 отображает на один элемент пару соседних
команд. При значении scale, равном 02, все команды
отобразятся на первый элемент области buff, который в
результате превратится в непрерываемые часы.
Если значение аргумента scale задано равным 0 или 1,
получение профиля выключается. При bufsiz равном 0 про-
филирование не выключается, однако его результаты нигде
не фиксируются. Профилирование выключается при выполне-
нии системного вызова exec, но остается в процессе-по-
томке и родительском процессе после вызова fork. Профи-
лирование отключается, если обращение к элементу облас-
ти buff приведет к выходу за границы памяти, отведенной
процессу.
СМ. ТАКЖЕ
times(2), monitor(3C).
prof(1) в Справочнике пользователя.
ДИАГНОСТИКА
Не предусмотрена.
|