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

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


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


* обнаруживать где и на что ваша программа расходует время;


* создавать аннотированный листинг исходного текста Вашей программы и статистический отчет о профилировании;


* запоминать статистические данные, полученные в результате профилирования и затем, после перерыва, возвращаться к работе с этими данными;


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


Примечание: Примеры этой главы основаны на колонке Джона Бентли в журнале Communications of the ACM (июль

1987), которая называется «Жемчужины программирования»

(«Programming Pearls»).


Примечание: Все примеры были опробованы на машине с 286 процессором и видеоадаптером Hercules.


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


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


Первой программой, которую мы рассмотрим, будет PRIME0. Как только Вы отпрофилируете ее и поймете в каких местах необходимо изменить ее текст, Вам необходимо переходить к следующему шагу — загрузке и профилированию PRIME1. За исключением PRIME1, каждая из программ, рассматриваемых в данной главе (PRIME2, PRIME3, PRIME4, PRIME5 и PRIME6) является модификацией предыдущей.


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

Программы PRIMEn.* написаны на Turbo C. Для пользователей Паскаля имеются аналоги этих программ PRIMEnPA.* которые могут использоваться для упражнений во время чтения данной главы. Каждое обсуждение профилирования программы, написанной на С сопровождается комментарием, отражающим отличия в случае профилирования Паскалевской программы.


Убедитесь, что все файлы с примерами (PRIMEn.C и PRIMEn.EXE или PRIMEnPA.PAS и PRIMEnPA.EXE) находятся в Вашей текущей директории.


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


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


Turbo C++: При работе в интегрированной среде, необходимо выбрать в меню Options| Full Menus (Параметры| Полный набор меню) затем открыть блок диалога отладчика (для этого надо выбрать Options| Debugger (Параметры| Отладчик)), и установить Source Debugging (Отладка на уровне исходного кода) в значение Standalone (Самостоятельный отладчик). При компиляции с использованием командной строки необходимо задавать параметр — v.


Turbo C: Если Вы компилируете в интегрированной среде, то необходимо перед компиляцией программы выбрать Standalone (Самостоятельный отладчик) в параметрах отладчика Debug| Source Debugging (Отладчик| Отладка на уровне исходного текста). При компиляции с использованием командной строки необходимо задавать параметр — v.


Turbo Pascal: Если Вы компилируете в интегрированной среде, необходимо установить пункты меню Options|Debug Information (Параметры|Отладочная информация) и Debug|Stand-Alone Debugging (Отладка| Самостоятельный отладчик) в состояние On. При компиляции с помощью командной строки необходимо использовать параметр /v.


Turbo Assembler: Необходимо использовать параметр /zi, затем строить загрузочный модуль при помощи TLINK, задавая при этом параметр /v.


Информация для пользователей 80x87.


Поскольку Turbo Profiler способен использовать возможности математического сопроцессора, в том случае если сопроцессор установлен на Вашем компьютере, и Вы хотите получить статистические данные, соответствующие изложенным в настоящем руководстве, то Вам необходимо временно запретить использование сопроцессора (в противном случае полученные вами результаты будут значительно отличаться от приведенных в этом тексте). Для того чтобы Turbo Profiler не пользовался возможностями сопроцессора достаточно перед началом работы с профилировщиком выполнить команду DOS SET 87=N. Но даже в этом случае полученные статистические данные могут сильно отличаться от изложенных в данном руководстве, из-за несовпадения технических характеристик компьютеров таких, например, как быстродействие процессора.


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

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


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

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


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

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


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

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


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

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


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

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


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Pro Git

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


Java 7

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


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


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

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


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.