Система Turbo Profiler фирмы Borland | страница 42



Как только Вы активировали соответствующие параметры меню Statistics (Статистика), Вы можете открыть соответствующие окна отчета о профилировании (использовав для этого меню View (Просмотр), затем вызвать локальные меню для каждого из окон, для того, чтобы указать детали, относящиеся к данным, которые Вы хотите получить.

Помните о том, что для получения отчета о профилировании в желаемом виде, необходимо установить соответствующие параметры до того, как Вы начнете выполнять Вашу программу.

В какой момент следует начать сбор данных?

Часто Вам необходимо собрать временные данные только о выполнении какого-то конкретного участка Вашей программы. Для того, чтобы это сделать, начните выполнение Вашей программы, вообще не собирая никакой статистической информации, установите для этого параметр Statistics| Accumulation (Статистика| Накопление) в состояние Disabled (Отключен). Вы можете в любое время посмотреть какое значение имеет параметр Accumulation (Накопление), вызвав для этого на экран блок File| Get Info (Файл| Получить информацию) и посмотрев состояние параметра Collection (Сбор).

В том случае, если параметр Accumulation (Накопление) отключен, Вы должны включить этот параметр для маркера «области», информацию о которой Вы хотите получить, и затем отключить этот параметр для маркера «области» в которой Вы хотите запретить сбор статистических данных. Число таких точек, в которых включается и выключается сбор статистических данных ограничено лишь количеством доступной оперативной памяти, как правило Вы можете задать столько таких точек, сколько Вам требуется.

Каким образом сгруппировать временные данные?

Профилировщик может изобразить временные данные для каждой из подпрограмм отдельно от других, а может объединить их с данными, соответствующими тем подпрограммам, которыми были вызваны вышеупомянутые подпрограммы.

По умолчанию предполагается, что как только активная в данный момент времени подпрограмма вызывает какую-либо другую подпрограмму, помеченную маркером «области», профилировщик помещает первую из этих подпрограмм в стек вызовов и считает, что с этого момента она находится в пассивном состоянии. И до тех пор пока управление программы находится в вызванной подпрограмме, профилировщик относит каждый импульс таймера исключительно к данной подпрограмме, забывая на это время о том, откуда она была вызвана.

Тем не менее, если Вы укажете, что вызывающая подпрограмма должна использовать объединенные часы (а не отдельные часы), то профилировщик будет относить импульсы таймера, происходящие во время выполнения вызванной подпрограммы, к обеим подпрограммам сразу.