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) в Справочнике пользователя.
ДИАГНОСТИКА
Не предусмотрена.