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) в Справочнике пользователя.

ДИАГНОСТИКА
Не предусмотрена.