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



Какой режим профилирования Вы используете?

В процессе получения профиля программы очень важное значение имеет выбор режима работы, который может быть активным или пассивным. Режим устанавливается при помощи кнопки Profile Options (Параметры профилирования). По умолчанию Turbo Profiler работает в режиме активного анализа, в котором автоматически собирается как количественная, так и временная статистика, а так же другие данные (такие, например, как история вызовов подпрограмм или информация о использовании прерываний), учет которых задан текущей конфигурацией параметров меню Statistics (Статистика). Если же Ваша программа работает очень медленно и Вы можете обойтись без количественной статистики и истории вызовов подпрограмм, то Вам необходимо использовать режим пассивного анализа, в котором профилировщик собирает только временные данные о помеченных «областях» (такие как время выполнения; время, затраченное на вызовы прерываний и обращения к файлам) и поэтому процесс получения профиля происходит гораздо быстрее.

Активный анализ.

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

Примечание: С другими способами, позволяющими ускорить процесс получения профиля Вы можете познакомиться в разделе «Как ускорить профилирование», расположенном ниже.

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

Пассивный анализ.

В режиме пассивного анализа Turbo Profile регулярно прерывает процесс выполнения программы для того, чтобы проверить значение счетчика команд, CS: IP. Если значение данного счетчика указывает на адрес, находящийся внутри помеченной «области», то профилировщик увеличивает значение переменной в которой накапливаются временные данные для данной «области». Если значение счетчика CS: IP не указывает на внутренность какой либо помеченной области (к примеру это значение может указывать на адрес прерывания DOS или вызова BIOS), то профилировщик никак не учитывает импульс таймера, вызвавший данное прерывание работы программы.