prof - вывод результатов профилирования
prof [-t] [-c] [-a] [-n] [-o] [-x] [-g] [-z] [-h] [-s] [-m файл_профиля] [прогр]
Команда prof интерпретирует файл_профиля, подготовленный с помощью функции . При этом читается таблица имен об ектного файла прогр (по умолчанию a.out) и соотносится с файлом_профиля (по умолчанию mon.out). Для каждого внешнего объекта из секции команд выдается время (в процентах), затраченное на выполнение участка программы между адресом данного объекта и адресом следующего. Кроме того, печатается число вызовов каждой функции и среднее время в миллисекундах, затраченное на один вызов.
Следующие взаимоисключающие опции определяют критерий сортировки выводимых строк:
Сортировать по уменьшению доли общего времени (применяется по умолчанию). |
Сортировать по уменьшению количества вызовов. |
Сортировать по увеличению адресов. |
Сортировать по именам лексикографически. |
Взаимоисключающие опции -o и -x задают формат вывода адресов объектов:
Выводить вместе с именем восьмеричный адрес объекта. |
Выводить вместе с именем шестнадцатеричный адрес объекта. |
Следующие опции можно использовать в произвольной комбинации:
Включить в выдачу неглобальные объекты (статические функции). |
Включить в выдачу все объекты из диапазона профилирования [см. ], даже если соответствующие им количество вызовов и доля общего времени равны нулю. |
Подавить выдачу обычно печатаемого заголовка. (Данная опция полезна, если результаты предназначены для последующей обработки.) |
Выдать в стандартный протокол итоговую информацию о профилировании. |
Использовать в качестве исходного файл_профиля, а не mon.out. |
Программа создает файл с данными профилирования, если редактирование связей выполнялось командой с опцией -p. При применении данной опции в начало и конец программы вставляются вызовы функции . Второй из этих вызовов приводит к записи файла с результатами профилирования. Если нужно, чтобы для какой-то функции было выдано количество ее вызовов, файл с данной функцией следует компилировать с опцией -p.
Имя файла, создаваемого профилируемой программой, определяется по переменной окружения PROFDIR. В случае отсутствия переменной PROFDIR, в каталоге, текущем на момент окончания программы, создается файл mon.out. Если PROFDIR=цепочка, то создается файл цепочка/идентификатор_процесса.имя_программы, где имя_программы задается аргументом командной строки argv[0] с удаленным маршрутным префиксом. Если значение PROFDIR является пустой цепочкой, то данные о профилировании в файл не записываются.
В целях профилирования функция может быть разбита на подфункции с помощью макроса MARK [см. ].