Система Turbo Profiler фирмы Borland
- Название:Система Turbo Profiler фирмы Borland
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Система Turbo Profiler фирмы Borland краткое содержание
Система Turbo Profiler фирмы Borland - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
1. сколько времени тратится на выполнение каждой подпрограммы;
2. в каких случаях при подсчете времени выполнение подпрограммы это время включает в себя времена подпрограмм, вызываемых из данной.
Перед тем как начать подсчет временных соотношений процесса выполнения, Вам необходимо установить маркеры «областей» для всех подпрограмм, фигурирующих в исходном тексте. В случае очень больших программ приходится ограничиваться только лишь одним модулем.
Если Вы пометили маркерами единственный модуль, то задача удачного группирования статистических данных становится очень важной. Вот некоторые методы, позволяющие усовершенствовать процесс профилирования:
* Используйте фильтры для того, чтобы сделать невидимой информацию, которая Вас в данный момент не интересует (это можно сделать при помощи команды Filter (Фильтр) локального меню окна Execution Profile (Профиль выполнения);
* Убирайте маркеры «области», помечающие подпрограммы, которые Вас в данный момент не интересуют (это можно сделать при помощи команды Remove (Убрать) локальных меню окон Modulе (Модуль), Execution Profile (Профиль выполнения) и Areas («Области»));
* Объединяйте времена выполнения для рассматриваемых подпрограмм (это можно сделать, установив соответствующим образом параметр Timer (Таймер), при помощи команды Statistics|Profiling Options (Статистика|Параметры профилирования) либо команды Options (Параметры) локального меню окна Areas (Области).
Если Вы получаете профиль программы, внутренняя структура которой вам неизвестна, то Вы можете параллельно подсчитывать временные соотношения и изучать структуру программы.
Изучение структуры незнакомой программы.
Одним из наилучших путей изучения структуры незнакомой программы является анализ истории вызовов подпрограмм, которая отображается системой Turbo Profiler в окне Callers (Вызывающие подпрограммы). Эта история вызовов демонстрирует иерархическую структуру программы, для которой был получен профиль. Хотя в каждый из моментов времени в окне Callers (Вызывающие подпрограммы) могут находиться пути вызова только какой-то одной подпрограммы, Вы, тем не менее, имеете возможность распечатать все истории путей вызовов, полученные в данном сеансе профилирования. Для этого необходимо, открыв окно Callers (Вызывающие подпрограммы), воспользоваться командой Print| Statistics (Печать|Статистика).
Рис. 3.1 Окно Callers (Вызывающие подпрограммы).
Получив информацию о том, какие из подпрограмм вызываются данной, а так же о том какие из подпрограмм сами вызывают данную и приняв во внимание то, сколько раз управление программы проходило по каждому из путей вызова, Вы можете сделать заключение о том, какие подпрограммы имеют наибольшее значение для работы всей программы. Вы так же сможете предвидеть какие из подпрограмм более высокого уровня будут затронуты при внесении изменений в какую-либо подпрограмму.
На основании временной и количественной статистики Вы можете понять какие из подпрограмм являются наиболее важными. Контроль за обращением к файлам и работой с оверлеями позволяет проследить за открытием и закрытием всех временных файлов, используемых программой во время своего выполнения, а также за загрузкой в память оверлеев. Получить перечисленные данные на основании лексического анализа программы довольно сложно.
Окна профилировщика Execution Profile (Профиль выполнения), Module (Модуль) и Areas («Области») связаны между собой, что позволяет быстро перемещаться по содержимому этих окон, устанавливая курсор на заданные, функционально зависимые, но физически удаленные друг от друга участки исходного текста Вашей программы.
Какой режим профилирования Вы используете?
В процессе получения профиля программы очень важное значение имеет выбор режима работы, который может быть активным или пассивным. Режим устанавливается при помощи кнопки Profile Options (Параметры профилирования). По умолчанию Turbo Profiler работает в режиме активного анализа, в котором автоматически собирается как количественная, так и временная статистика, а так же другие данные (такие, например, как история вызовов подпрограмм или информация о использовании прерываний), учет которых задан текущей конфигурацией параметров меню Statistics (Статистика). Если же Ваша программа работает очень медленно и Вы можете обойтись без количественной статистики и истории вызовов подпрограмм, то Вам необходимо использовать режим пассивного анализа, в котором профилировщик собирает только временные данные о помеченных «областях» (такие как время выполнения; время, затраченное на вызовы прерываний и обращения к файлам) и поэтому процесс получения профиля происходит гораздо быстрее.
Активный анализ.
При работе в активном режиме большую роль играет то, насколько часто в процессе выполнения управление попадает на маркеры «областей». Например Вы можете пометить каждую строчку Вашей программы за исключением одного оператора цикла, но, если на работу данного оператора тратится 95 % времени выполнения всей программы, то количество помеченных «областей» не сможет оказать значительного влияния на время работы программы.
Примечание: С другими способами, позволяющими ускорить процесс получения профиля Вы можете познакомиться в разделе «Как ускорить профилирование», расположенном ниже.
Профилировщик ощутимо замедляет работу программы в том случае, когда при каждом выполнении оператора исходного текста ему приходится производить большое количество действий по учету статистических данных. Если Вы попали в такую ситуацию, то у Вас всегда имеется возможность перейти на работу в режиме пассивного анализа, в котором отключается выполнение некоторых дорогостоящих процедур по учету статистических данных, обычно приводящихся в действие при попадании управления программы на маркер «области».
Пассивный анализ.
В режиме пассивного анализа Turbo Profile регулярно прерывает процесс выполнения программы для того, чтобы проверить значение счетчика команд, CS: IP. Если значение данного счетчика указывает на адрес, находящийся внутри помеченной «области», то профилировщик увеличивает значение переменной в которой накапливаются временные данные для данной «области». Если значение счетчика CS: IP не указывает на внутренность какой либо помеченной области (к примеру это значение может указывать на адрес прерывания DOS или вызова BIOS), то профилировщик никак не учитывает импульс таймера, вызвавший данное прерывание работы программы.
Проинтерпретировать результаты пассивного анализа довольно — таки тяжело, за исключением случаев когда время выполнения Вашей программы велико или когда Вы накапливаете статистику в результате большого числа запусков Вашей программы. Некоторые «области» Вашей программы могут вообще не найти никакого отражения в статистических данных несмотря на то, что в действительности они работают в процессе выполнения программы. Это происходит потому, что прерывания работы программы, производимые профилировщиком, просто не совпадают со временем выполнения этих «областей».
Читать дальшеИнтервал:
Закладка: