Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

MONITOR(3C)

НАЗВАНИЕ
monitor - подготовка временного профиля программы

СИНТАКСИС

	#include <mon.h>
	
	void monitor (lowpc, highpc, buffer, bufsize, nfunc)
	int (*lowpc)( ), (*highpc)( );
	WORD *buffer;
	int bufsize, nfunc;

ОПИСАНИЕ
В выполняемую программу, полученную с помощью команды cc -p, автоматически вставляются вызовы функции monitor с подразумеваемыми значениями аргументов; явно эту функцию следует вызывать только тогда, когда нужно иметь возможность тонкого управления профилированием.

Функция monitor представляет собой интерфейс к системному вызову profil(2). Аргументы lowpc и highpc являются адресами двух функций; buffer - это адрес (пользовательского) массива элементов типа WORD (тип определен во включаемом файле <mon.h>), длина массива задается аргументом bufsize. Функция monitor организует запись в массив buffer гистограммы значений периодически опрашиваемого счетчика команд, а также счетчиков числа вызовов некоторых функций. Диапазон фиксируемых значений счетчика команд простирается от lowpc (нижний предел) до highpc (диапазон кончается перед этим адресом). Нижний предел lowpc должен быть отличен от нуля. Храниться может не более nfunc счетчиков вызовов; фиксируются вызовы только тех функций, которые были откомпилированы с опцией профилирования -p команды cc(1).

Чтобы результаты измерений давали представление о реальной ситуации, особенно когда есть небольшие, но часто используемые функции, надо, чтобы размер массива buffer был сравнимым с отслеживаемым диапазоном адресов.

Для подготовки временного профиля всей программы достаточно следующей конструкции:

	extern etext;
	  ...
	monitor ((int (*)()) 2, &etext, buf, bufsize, nfunc);

Объект etext лежит непосредственно за сегментом команд [см. end(3C)].

Чтобы прекратить профилирование и записать результаты, следует использовать обращение

	monitor((int (*)()) 0, 0, 0, 0, 0);

Затем для просмотра результатов можно воспользоваться командой prof(1).

С помощью переменной окружения PROFDIR можно управлять именем выходного файла функции monitor. Если такой переменной нет, то в текущем каталоге создается файл mon.out. Если переменная существует, но значения у нее нет, то monitor не профилирует программу и не создает выходной файл. В противном случае создается выходной файл с именем $PROFDIR/идентификатор_процесса.mon.out. При автоматическом вызове процедуры monitor после компиляции по команде cc -p выходной файл получает имя $PROFDIR/идентификатор_процесса.имя_программы.

ФАЙЛЫ

	mon.out

СМ. ТАКЖЕ
profil(2), end(3C).
cc(1), prof(1) в Справочнике пользователя.

СЮРПРИЗЫ
Форма

	$PROFDIR/идентификатор_процесса.mon.out
не работает. Работает автоматическая форма
	$PROFDIR/идентификатор_процесса.имя_программы
Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...