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

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

printf(«prime %d = %d\n», 1, primes[1]);

while(curprime < MAXPRIMES)

{

for(j = 0; j <= lastprime; j++)

if((curprime % primes[j]) == 0)

{

curprime += 2;


break;

}

if(j <= lastprime)

continue;

lastprime++;

printf(«prime %d = %d\n», lastprime, curprime);

primes[lastprime] = curprime;

curprime += 2;

}

}


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


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


Теперь наберите на клавиатуре EXIT и нажмите клавишу ENTER для того, чтобы вернуться в среду системы Turbo Profiler.


Отчет о статистике профилирования.


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


1. Снова выберите Print|Options (Принтер|Параметры).


2. Выберите селективную кнопку Printer (Принтер).


3. Выберите Graphics (Графика) для того, чтобы включить в выдачу псевдографические символы IBM (Если ваш принтер не поддерживает псевдографические символы, пропустите этот шаг и переходите к шагу 4.)


4. Нажмите ENTER или (выберите ОК).


5. Выберите Print|Statistics (Печать|Статистика).


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


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


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


Выберите команду Statistics| Save (Статистика| Сохранить) для сохранения статистики профилирования в файле с расширением TFS (Turbo Profiler Statistics (Статистические данные системы Turbo Profiler)). Так как в окне Module (Модуль) находится PRIME0, то блок ввода File Name (Имя файла) по умолчанию предлагает PRIME0.TFS для названия файла в котором будет хранится статистика. Для того, чтобы создать этот файл выберите ОК.


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

Для того, чтобы просмотреть статистику, загрузите PRIME0 в профилировщик и выберите в меню команду Statistics|Restore (Статистика|Восстановить). Как и в предыдущий раз, в блоке ввода File Name (Имя файла) по умолчанию будет задан файл PRIME0.TFS. Нажмите ENTER для перехода в блок списка Files (Файлы), выберите в нем PRIME0.TFS и, затем, выберите ОК для восстановления статистических данных из этого файла.


Анализ статистики.


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


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


Важное замечание: Пользователям Паскаля. В PRIME0PA им соответствуют строки 31 (if) и 42 (Writeln).


Из полученного профиля мы можем почерпнуть много полезных сведений. Например, легко заметить, что строка 22 в PRIME0 выполняется гораздо чаще чем любой другой оператор. Вполне понятно, что строка 22 выполняется 15 122 раза, так как в этой строке происходит проверка каждого числа в диапазоне от 4 до 1000 на делимость этого числа на элементы массива primes, проверка происходит до тех пор пока либо после деления остаток станет равным 0, либо массив primes будет исчерпан. Так же можно видеть, что строка 31 (оператор printf) отнимает большую часть времени выполнения программы.


Примечание: в программе PRIME5 содержится модифицированный вариант оператора printf, (пользователям Паскаля предназначена программа PRIME5PA с оператором CRT).


Одновременный просмотр исходного текста и статистики.


Данные в окне Execution Profile (Профиль выполнения) показывают, что в строке 22 программа выполняет большую работу, чем нам необходимо. Но полную картину того, что происходит во время выполнения программы можно получить лишь при одновременном рассмотрении временной и количественной статистики с исходным текстом программы.


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


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

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


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

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


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

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


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 так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.