Система Turbo Profiler фирмы Borland | страница 47
* Объединяйте времена выполнения для рассматриваемых подпрограмм (это можно сделать, установив соответствующим образом параметр Timer (Таймер), при помощи команды Statistics|Profiling Options (Статистика|Параметры профилирования) либо команды Options (Параметры) локального меню окна Areas (Области).
Если Вы получаете профиль программы, внутренняя структура которой вам неизвестна, то Вы можете параллельно подсчитывать временные соотношения и изучать структуру программы.
Изучение структуры незнакомой программы.
Одним из наилучших путей изучения структуры незнакомой программы является анализ истории вызовов подпрограмм, которая отображается системой Turbo Profiler в окне Callers (Вызывающие подпрограммы). Эта история вызовов демонстрирует иерархическую структуру программы, для которой был получен профиль. Хотя в каждый из моментов времени в окне Callers (Вызывающие подпрограммы) могут находиться пути вызова только какой-то одной подпрограммы, Вы, тем не менее, имеете возможность распечатать все истории путей вызовов, полученные в данном сеансе профилирования. Для этого необходимо, открыв окно Callers (Вызывающие подпрограммы), воспользоваться командой Print| Statistics (Печать|Статистика).
Рис. 3.1 Окно Callers (Вызывающие подпрограммы).
Получив информацию о том, какие из подпрограмм вызываются данной, а так же о том какие из подпрограмм сами вызывают данную и приняв во внимание то, сколько раз управление программы проходило по каждому из путей вызова, Вы можете сделать заключение о том, какие подпрограммы имеют наибольшее значение для работы всей программы. Вы так же сможете предвидеть какие из подпрограмм более высокого уровня будут затронуты при внесении изменений в какую-либо подпрограмму.
На основании временной и количественной статистики Вы можете понять какие из подпрограмм являются наиболее важными. Контроль за обращением к файлам и работой с оверлеями позволяет проследить за открытием и закрытием всех временных файлов, используемых программой во время своего выполнения, а также за загрузкой в память оверлеев. Получить перечисленные данные на основании лексического анализа программы довольно сложно.
Окна профилировщика Execution Profile (Профиль выполнения), Module (Модуль) и Areas («Области») связаны между собой, что позволяет быстро перемещаться по содержимому этих окон, устанавливая курсор на заданные, функционально зависимые, но физически удаленные друг от друга участки исходного текста Вашей программы.