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



Что Вы пытаетесь понять в ходе процесса профилирования?

Обычно программисты пользуются профилировщиком для получения ответа на один или несколько из следующих вопросов:

* Насколько эффективен данный алгоритм? (Тестирование алгоритма).

* Делает ли данная программа то, что по моему мнению она должна делать? Все ли части данной программы работоспособны?

(Верификация и тестирование)

* Сколько времени затрачивается на выполнение каждой из подпрограмм? В течение какого промежутка времени Ваша программа использует те или иные ресурсы? (Подсчет времен выполнения и контроль за использованием ресурсов (resource monitoring)

* Какова структура данной программы? (Анализ структуры программы).

Следующая таблица связывает между собой цель профилирования и тип собираемой Вами информации, необходимой для достижения данной цели.


Таблица 3.1 Способы применения профилировщика

Цель профилирования — Тип собираемой информации

Тестирование алгоритма — Информация о количестве выполнений строк; Отчет о динамике вызовов подпрограмм.

Верификация и тестирование — Информация о количестве выполнений подпрограмм, (возможно, и строк тоже); Отчет о динамике вызовов подпрограмм.

Подсчет времен выполнения и контроль за использованием ресурсов — Временная статистика; количественная статистика; данные об использовании прерываний; данные об обращениях к файлам; информация об использовании оверлеев.

Анализ структуры программы — Отчет о динамике вызовов подпрограмм; данные об обращениях к файлам; профиль выполнения (включающий временную и количественную статистику); данные об использовании прерываний; информация об использовании оверлеев.


Тестирование алгоритма.

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

1. Выделить алгоритм и все поддерживающие подпрограммы, пометив их как «области».

2. Убедиться в том, что Вы установили маркеры «области» на каждой строке всех подпрограмм, реализующих рассматриваемый алгоритм.

Примеры Главы 1 демонстрируют анализ алгоритма, причем этот анализ проводится в основном с точки зрения времени выполнения.

Верификация и тестирование программ.

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