Система Turbo Profiler фирмы Borland
- Название:Система Turbo Profiler фирмы Borland
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Система Turbo Profiler фирмы Borland краткое содержание
Система Turbo Profiler фирмы Borland - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Если Вы устанавливаете режим пассивного анализа, то в результате этого не происходит заметного замедления работы программы. Но в этом случае Вы можете не получить некоторую требующуюся Вам информацию. Вы не сможете получить количественные данные, а также информацию о путях вызова подпрограмм, но тем не менее Вам остаются доступными сведения о вызовах прерываний и обращениях к файлам.
При профилировании в пассивном режиме Вы получаете более адекватные статистические данные несколько раз (для этого необходимо присвоить параметру Run Count (Счетчик числа выполнений), находящемуся в блоке диалога Profiling Options (Параметры профилирования), значение, превышающее 1).
Примечание: За то, что пассивный анализ не сильно увеличивает время работы программы, Вам приходиться платить некоторой неполнотой полученного профиля.
Некоторые вещи, на которые стоит обратить внимание.
Некоторые данные, полученные в результате пассивного анализа, могут ввести Вас в заблуждение, если при их рассмотрении Вы не будете учитывать следующих соображений:
* Если в процессе работы Вашей программы выполняются операции чтения с диска и записи на него, то время затрачиваемое на эти операции прибавляется ко времени выполнения соответствующей подпрограммы только в случае активного анализа, при пассивном анализе этого не происходит.
* Когда Ваша программа обращается к какому-либо прерыванию, не помеченному как «область», то профилировщик прибавляет время, затрачиваемое на обработку прерывания ко времени выполнения подпрограммы, из тела которой произошло обращение к данному прерыванию, если анализ происходит в активном режиме, если же задан пассивный режим работы, то это время просто игнорируется.
Профилирование объектно-ориентированных программ.
В общем случае, профилирование объектно-ориентированных программ не очень сильно отличается от профилирования обыкновенных программ. Вы можете обращаться с этими программами точно так же, как со всеми остальными, рассматривая при этом методы в качестве вызовов подпрограмм.
Как ускорить процесс получения профиля.
Каждый раз, когда управление Вашей программы передается какой-либо подпрограмме, помеченной в качестве «области», Turbo Profiler выполняет ряд определенных действий для учета статистической информации. Скорость выполнения программы в процессе получения ее профиля зависит от того, как часто управление попадает на маркеры «областей», а так же от типа данных, собираемых профилировщиком для тех «областей», который выполняются наиболее часто. Чем более подробная информация собирается о какой либо «области», тем больше времени требуется профилировщику для ее учета.
В некоторых случаях Turbo Profiler может замедлить работу Вашей программы до неприемлемого уровня. Такая ситуация возможна в случае частых обращений к какой-либо подпрограмме если пути ее вызова имеют большую длину и параметры, регулирующие сбор информации о стеках вызовов имеют значения, задающие режим в котором происходит запоминание всех стеков вызовов во всех «областях». Если Вы пометите такую глубоко вложенную подпрограмму в качестве «области», то системе Turbo Profiler придется затрачивать большое количество времени на отслеживание путей вызова этой подпрограммы.
Примечание: Даже в случае когда при профилировании ваша программа работает медленнее чем на самом деле все временные данные, получаемые системой Turbo Profiler соответствуют действительности.
Для обнаружения того, что Ваша программа часто вызывает некоторую подпрограмму, находящуюся на низком уровне иерархии, необходимо переключиться на работу в окне Execution Profile (Профиль выполнения) и отобразить на экране количественную статистику. Для этого необходимо вызвать локальное меню и задать значение Counts (Подсчет) для параметра Display (Изображение). В результате на экране должна появиться гистограмма, отражающая сколько раз была выполнена каждая «область» и упорядоченная по числу выполнений.
Если одна или несколько подпрограмм вызываются Вашей программой гораздо чаще чем остальные, то Вы можете заблокировать выдачу на экран статистической информации о этих подпрограммах при помощи команды Filter| Current (Отфильтровать| Текущую) локального меню окна Execution Profile (Профиль выполнения). Также Вы можете снять пометку с «областей», соответствующих данным подпрограммам при помощи команды Remove (Убрать), имеющейся в локальных меню окон Module (Модуль), Areas (Области) и Execution Profile (Профиль выполнения).
Как повысить точность статистических данных.
Если Вам не удается собрать достаточного количества данных (из-за того, что Ваша программа работает слишком быстро и профилировщик не успевает получить статистически значимую выборку) или собранные данные не соответствуют истинному положению вещей (вследствие резонанса, т. е. в том случае, когда частота импульсов таймера совпадает с частотой выполнения некоторой части Вашей программы), то в такой ситуации Вы не можете принять обоснованное решение о том, какие изменения необходимо внести в исходный текст Вашей программы. Давайте посмотрим, что же можно предпринять в случае возникновения перечисленных проблем.
Недостаточное количество данных.
Для повышения точности временных статистических данных, а так же для получения статистически значимой выборки этих данных, необходимо произвести несколько запусков Вашей программы, используя для задания их числа параметр Run Count (Счетчик запусков), находящийся в блоке диалога Profiling Options (Параметры профилирования). При каждом запуске Вашей программы профилировщик добавляет полученные временные данные к соответствующим данным, собранным во время предыдущих запусков. Это продолжается до тех пор пока число произведенных запусков не станет равно значению параметра Run Count (Счетчик запусков).
Резонанс.
Если причиной неточности статистических данных является резонанс, то в этом случае следует воспользоваться параметром Clock Speed (Скорость часов), находящемся в блоке диалога Profiling Options (Параметры профилирования), и позволяющим устанавливать частоту работы таймера профилировщика в диапазоне от 18 до 1000 импульсов в секунду. Необходимо выбрать такую частоту, которая не является делителем резонансной частоты и не может быть получена из нее при помощи умножения на целое число. Например если при работе таймера с частотой 100 импульсов в секунду Вы наблюдаете явление резонанса, то можно попробовать изменить частоту его работы на 70 или 130 импульсов в секунду. (В том случае, когда у Вас возникает подозрение о наличии явления резонанса, попробуйте задать различные частоты работы таймера, не являющиеся целочисленными произведениями друг друга, и сравнить получающуюся при этом статистику. Если Ваши подозрения справедливы, то наборы данных для различных частот должны значительно отличаться друг от друга).
Читать дальшеИнтервал:
Закладка: