Система Turbo Profiler фирмы Borland
- Название:Система Turbo Profiler фирмы Borland
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Система Turbo Profiler фирмы Borland краткое содержание
Система Turbo Profiler фирмы Borland - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Окно Overlays (Оверлеи).
Информация, отображаемая в окне Overlays (Оверлеи), позволяет Вам обнаружить чрезмерно частые обращения к оверлеям, для того чтобы исключить такие ситуации при помощи включения этих оверлейных модулей в текст основной программы.
Окно Interrupts (Прерывания).
В окне Interrupts (Прерывания) перечислены все случаи обращения Вашей программы к избранным Вами прерываниям. Эта информация может подсказать Вам необходимость объединения вывода на экран, производящегося в нескольких строках Вашей программы. А в случае программ, интенсивно обменивающихся данными с дисковыми файлами, Вы, на основании информации, расположенной в данном окне, можете прийти к выводу о целесообразности буферизации этого обмена.
Окно Files (Файлы).
В данном окне содержится информация о всех операциях чтения из файла и записи в файл, выполняемых Вашей программой. В случае приложений, требующих большого числа обращений к файлам, данные, фигурирующие в этом окне показывают на работу с какими из файлов следует обратить особое внимание.
Как отфильтровать полученные данные.
Команды локального меню окна отчета Execution Profile (Профиль выполнения) позволяют устанавливать временные и постоянные фильтры, регулирующие выдачу на экран статистических данных. Ниже приводится таблица, в которой содержатся команды, используемые для фильтрации статистических данных:.
Таблица 3.2 Команды локального меню для фильтрации собранных статистических данных.
Окно……………………………………….Команда локального меню…………………Действие команды.
Execution Profile(Профиль выполнения)…Filter (Фильтр)…………………………Временно удаляет с экрана статистику,
относящуюся к текущей «области», или же вызывает изображение статистики, относящейся только к текущему модулю,
или восстанавливает в окне все полученные статистические данные. (Меню, появляющееся в результате выбора команды
Filter (Фильтр), включает в себя следующие варианты: Current (Текущая), Module (Модуль) и All (Вся)).
…………………………………………….Remove (Удалить)………………….Убирает из полученного набора статистических данных, без возможности последующего восстановления, те из них, которые относятся к текущей «области». Пользоваться этой командой надо очень осторожно.
Files (Файлы)…………………………….Collection (Сбор статистики) (верхняя панель)….. В отключенном состоянии блокирует сбор статистической информации о файлах.
…………………………………………..Detail (Уровень детализации)(верхняя панель)……В отключенном состоянии приводит к учету только операций по открытию и закрытию файлов, во включенном состоянии добавляется учет операций чтения и записи.
…………………………………………..Display (Изображение)…………………………. Отображает каждое из учитывемых действий либо в качестве элемента гистограммы, либо в текстовом виде, показывающем точное время начала и продолжительность данного действия.
Interrupts (Прерывания)……………….Remove (Удалить) (верхняя панель)……………Убирает выбранное в данный момент прерывание с верхней панели.
………………………………………….Display (Изображение) (нижняя панель)……………Изображает данные об обращениях к прерываниям либо в виде гистограмм в которых суммируются обращения к прерываниям и время,
затрачиваемое на эти обращения либо в качестве подробного перечня всех обращений к прерываниям
Overlays (Оверлеи)…………………….Display (Изображение)………………………….Изображает данные, полученные для каждого из оверлеев либо в виде (1) Count (Подсчет), в котором фигурируют общее количество занимаемой памяти и количество обращений к данному оверлею, либо в виде (2) History (История) в котором перечислены все случаи загрузки оверлеев, сопровождаемые подробной информацией.
Когда Вы выбираете Remove (Удалить) в локальном меню окна Execution Profile (Профиль выполнения), для того, чтобы насовсем убрать статистические данные какой либо «области» профилировщик выполняет следующие действия:
* корректирует отчет о профилировании, убирая из рассмотрения время, затраченное в данной области;
* корректирует процентное выражение времени выполнения оставшихся «областей», путем подсчета того, сколько процентов оно составляет от скорректированного общего времени выполнения программы:
<���скорректированное общее время>=<���общее время>-<���время выполнения удаленной области>;
* снимает пометку этой «области» в окне Module (Модуль);
* удаляет данную «область» из списка «областей», находящегося в окне Areas («Области»).
Пересмотрите Вашу программу.
Приведем общую схему поиска подпрограмм, в которых простые изменения, внесенные в управляющие конструкции, могут привести к улучшению рабочих характеристик программы:
1. Попытайтесь обнаружить крупные подпрограммы, имеющие несоразмерное время выполнения, или подпрограммы, вызывающиеся большое количество раз. Начав с самого верхнего уровня Вашей программы, проследите передачу управления на все последующие уровни, пытаясь найти участки программы в которых можно улучшить ее работу за счет удаления из текста излишних вызовов подпрограмм и ненужных операций.
2. Попытайтесь выявить операторы и подпрограммы для которых велико значение отношения общего времени их выполнения к количеству выполнений этих операторов и подпрограмм. Установите значение Both (Оба) или Рer Call (На один вызов) параметра Display (Изображение), находящегося в локальном меню окна Execution Profile (Профиль выполнения). Затем посмотрите для каких областей строка гистограммы, отражающая время работы, велика, а строка, соответствующая числу вызовов мала. Обычно такими свойствами обладают неэффективно работающие операторы и подпрограммы. Перепишите их таким образом, чтобы тот же самый результат достигался с меньшими затратами.
3. И, в качестве последнего средства, мы можем предложить Вам заняться оптимизацией циклов, находящихся на самых нижних уровнях иерархии Вашей программы. При этом можно воспользоваться следующими приемами:
* разворачивание циклов;
* помещение в сверхоперативную память временных результатов, вычисляемых на каждой итерации;
* вынос вычислений, для которых это возможно, за пределы циклов;
* кодирование циклов на языке ассемблера.
Как правило при внесении изменений в управляющие конструкции, алгоритмы и структуры данных достигается больший эффект чем при модификации внутренних циклов.
Кроме трех вышеперечисленных процедур при повышении быстродействия Ваших программ можно производить следующие действия:
* Модифицировать структуры данных и алгоритмы;
* Заранее вычислять и хранить в памяти некоторые результаты;
* Помещать в оперативную память часто используемые данные;
* Вычислять значения, только в тех случаях, когда это непосредственно необходимо;
Читать дальшеИнтервал:
Закладка: