mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

MONITOR(3C)                                         MONITOR(3C)

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

СИНТАКСИС 
        #include 
        
        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  (тип  определен
	во  включаемом  файле  ), длина массива задается
	аргументом 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/идентификатор_процесса.имя_программы



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк