Система Turbo Profiler фирмы Borland - [6]

Шрифт
Интервал


Профилирование программы (PRIME0)


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


1. Загрузка программы перед ее профилированием.


2. Сбор данных во время выполнения программы.


3. Анализ полученных данных.


4. Модификация программы и ее повторная компиляция.


После внесения изменений в программу необходимо повторить выполнение пунктов с 1 по 3 для того, чтобы посмотреть как повлияли эти изменения на поведение программы в процессе исполнения.


Программа PRIME0 использует алгоритм Евклида для нахождения простых чисел. Как только простое число найдено, оно сразу же записывается в массив primes и для того, чтобы определить являются ли последующие числа простыми, делается попытка поделить их на числа, уже записанные в массив primes.


Загрузите PRIME0 в систему Turbo Profiler, набрав на клавиатуре Turbo Profiler PRIME0 и нажав клавишу ENTER.


Примечание: Вы можете закончить работу с профилировщиком в любой момент. Для этого необходимо выбрать в меню последовательность File|Quit (Файл|Выход) или нажать комбинацию Alt-X.


Важное замечание: Информация для пользователей Паскаля.

Если Вы хотите профилировать Паскалевскую версию PRIME0.C, то убедитесь, что файлы PRIME0PA.PAS и PRIME0PA.EXE находятся в Вашей текущей директории после чего наберите на клавиатуре TPROF PRIME0PA и нажмите Enter.


В начале работы Профилировщика откроются два окна: Module (Модуль) (в котором находится исходный текст PRIME0) и Execution Profile (Профиль выполнения) (в котором, после того как Вы запустите программу PRIME0, будет отображена статистика процесса ее выполнения).


Рис. 1.1 Turbo Profiler с загруженной в него программой PRIME0.


Окно Module (Модуль) и окно Execution Profile (Профиль выполнения) относятся к шагам 1 и 3 процесса профилирования. Окно Module (Модуль) используется для того, чтобы помечать участки программы, которые необходимо профилировать. После того как Вы запустите программу, в окне Execution Profile (Профиль выполнения) отображается информация, необходимая для анализа ее работы.


Установка параметров профилирования.


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


Для того, чтобы проанализировать небольшое количество коротких подпрограмм (таких, как prime и main в данной программе), Вы должны знать сколько раз выполняется каждая их строка и сколько времени занимает ее выполнение. Для того, чтобы получить эту информацию, Вы должны пометить каждую строку этой программы как «область».


1. Нажмите Alt-F10, для того чтобы активировать локальное меню окна Module (Модуль).


2. Выберите в этом меню Add Areas (Добавить «области»). Вам будет предложен для выбора список возможных границ «области».


3. Выберите Every Line in Module (Каждая строка в модуле). В результате этого маркеры «области» будут установлены для каждой строки программы и курсор вернется в окно Module (Модуль).


Обратите внимание на то, что в результате выполнения перечисленных операций все выполнимые строки программы оказались помеченными маркером =>.


Сбор статистических данных.


Итак, в настоящий момент Вы готовы к проведению второго этапа профилирования. Нажмите клавишу F9 для запуска PRIME0 под контролем Turbo Profiler. Программа выдаст на экран пользователя простые числа, находящиеся в диапазоне от 1 до 1000. Когда выполнение программы завершится, просмотрите информацию, появившуюся в окне Execution Profile (Профиль выполнения). Это и есть статистика процесса выполнения Вашей программы.


Распахните окно Execution Profile (Профиль выполнения), нажав клавишу F5 или выбрав Zoom (Распахнуть) из меню Window (Окно). После чего окно Execution Profile (Профиль выполнения) будет выглядеть следующим образом:


Рис. 1.2 Статистика процесса выполнения программы PRIME0.


Верхняя панель окна Execution Profile (Профиль выполнения) показывает общее время выполнения программы, сопровождаемое информацией о данных, находящихся на нижней панели. В каждой строке нижней панели содержится четыре позиции:


* название «области»;


* количество секунд, затраченных на выполнение данной области;


* процентное отношение этого времени к общему времени выполнения программы;


* горизонтальная диаграмма, пропорциональная этому отношению.


Строка вида


#PRIME0#31 6.2655 sec 93 % |============================ говорит о том, что тридцать первая строка программы PRIME0 выполнялась в течение 6.3 секунды, что составило 93 % от времени выполнения всех помеченных «областей». Диаграмма для строки 31 автоматически занимает все отведенное для диаграммы место, так как на выполнение 31 строки затрачивается самое большое количество времени среди всех помеченных областей.


Важное замечание: Информация для пользователей Паскаля. В программе PRIME0PA, соответствующая строка имеет номер 42.


Еще от автора Неизвестный Автор
Галчонок

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


Призраки ночи

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


Закат  вечности

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


mmmavro.org | День 131, Победа

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


mmmavro.org | День 132, Поэт

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


Песнь о Нибелунгах

…«Песнь о Нибелунгах» принадлежит к числу наиболее известных эпических произведений человечества. Она находится в кругу таких творений, как поэмы Гомера и «Песнь о Роланде», «Слово о полку Игореве» и «Божественная комедия» Данте — если оставаться в пределе европейских литератур…В. Г. Адмони.


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.