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