Введение
Отличие профилирования от оптимизации
Условия работы
Установка системы Turbo Profiler
Файл README
Краткое содержание
Замечания по терминологии
Глава 1. Пример работы с профилировщиком
Профилирование программы (PRIME0)
Установка параметров профилирования
Сбор статистических данных
Изображение статистики
Печать текстов программ и статистики
Отчет о статистике профилирования
Сохранение и восстановление статистических данных
Анализ статистики
Одновременный просмотр исходного текста и статистики
Сохранение конфигурации окон
Измерение эффективности работы «области» программы
Модульная программа поиска простых чисел (PRIME1)
Модификация программы и повторное профилирование
Загрузка программы PRIME2
Сокращение количества вызовов подпрограммы (PRIME3)
Добавим еще немного эффективности
Сокращение времени ввода/вывода
Удаление пар символов cr/lf («возврат каретки»/«перевод… строки») (PRIME6)
А что же дальше?
Глава 2. Внутри профилировщика
Воображаемые пункты сбора подорожной пошлины
Определение затрат времени на вызов подпрограмм
Кто расплачивается за циклы
Сбор статистических данных о вызовах подпрограмм
Опрос вместо подсчета
Использование памяти профилировщиком
Глава 3. Стратегии профилирования
Подготовка к получению профиля
Преобразование текста Вашей программы
Компиляция вашей программы
Задание «областей» профилирования
Какой уровень детализации Вам следует выбрать?
Какие данные Вам необходимо получить в процессе профилирования?
В какой момент следует начать сбор данных?
Каким образом сгруппировать временные данные?
Какие данные Вам необходимо просматривать?
Получение профиля Вашей программы
Что Вы пытаетесь понять в ходе процесса профилирования?
Тестирование алгоритма
Верификация и тестирование программ
Подсчет времени выполнения и контроль за использованием ресурсов
Изучение структуры незнакомой программы
Какой режим профилирования Вы используете?
Активный анализ
Пассивный анализ
Некоторые вещи, на которые стоит обратить внимание
Профилирование объектно-ориентированных программ
Как ускорить процесс получения профиля
Как повысить точность статистических данных
Недостаточное количество данных
Резонанс
Некоторые замечания о получении профилей программ, использующих оверлеи
Интерпретация и использование результатов профилирования
Как анализировать данные профилирования
Окно Execution Profile (Профиль выполнения)
Окно Callers (Вызывающие подпрограммы)
Окно Overlays (Оверлеи)
Окно Interrupts (Прерывания)
Окно Files (Файлы)
Как отфильтровать полученные данные
Пересмотрите Вашу программу
Модификация структур данных
Используйте заранее вычисленные данные
Производите буферизацию доступа к часто используемым данным
Организуйте вычисления рациональным образом
Оптимизируйте имеющийся текст программы
Циклы
Подпрограммы
Выражения
Резюме
Глава 4. Среда системы turbo profiler
Часть 1. Компоненты среды
Строка меню и меню
Средства оперативного доступа
Окна системы Turbo Profiler
Управление окнами
Строка состояния
Блоки диалога
Триггерные кнопки и селективные кнопки
Блоки ввода и списки
Часть 2. Справочник по меню
Системное меню (идентификатор — три горизонтальные черты)
Команда Repaint Desktop (Регенерировать рабочую область)
Команда About (О системе)
Меню File (Файл)
Команда Open (Открыть)
Команда Change Dir (Сменить директорию)
Команда Get Info (Получить информацию)
Команда DOS Shell (Выход в оболочку DOS)
Команда Quit (Выйти)
Меню View (Просмотр)
Окно Module (Модуль)
Команда Line (Строка)
Команда Search (Поиск)
Команда Next (Следующее)
Команда Goto (Переход)
Команда Add Areas (Добавить «области»)
Команда: Remove Areas (Удалить «области»)
Команда Operation (Режим работы)
Команда Callers (Вызывающие подпрограммы)
Команда Module (Модуль)
Команда File (Файл)
Команда Edit (Редактирование)
Окно Execution Profile (Профиль выполнения)
Команда Display (Изображение)
Команда Filter (Фильтр)
Команда Module (Модуль)
Команда Remove (Убрать)
Окно Callers (Вызывающие подпрограммы)
Команда Inspect (Просмотреть) (на левой панели)
Команда Sort (Сортировка) (на правой панели)
Окно Overlays (Оверлеи)
Команда Display (Изображение)
Команда Inspect (Просмотреть)
Окно Interrupts (Прерывания)
Команда Collection (Сбор) (на верхней панели)
Команда Subrountines (Подпрограммы) (на верхней панели)
Команда Add (Добавить) (на верхней панели)
Команда Pick (Выбрать) (на верхней панели)
Команда Remove (Убрать) (на верхней панели)
Команда Delete All (Убрать все) (на верхней панели)
Команда Display (Изображение) (на нижней панели)
Окно Files (Файлы)
Команда Collection (Сбор) (на верхней панели)
Команда Detail (Детализация) (на верхней панели)
Команда When Full (В случае заполнения) (на верхней панели)
Команда Display (Изображение) (на нижней панели)
Окно Areas («Области»)
Команда Add Areas (Добавить «области»)
Команда Remove Areas (Убрать «области»)
Команда Inspect (Просмотр)
Команда Options (Параметры)
Команда Sort (Сортировка)
Окно Routines (Подпрограммы)
Команда: Local Module (Локальный модуль) (на правой панели)
Команда Areas («Области») (на обеих панелях)
Команда Cаllers (Вызывающие подпрограммы) (на обеих панелях)
Команда Module (Модуль) (на обеих панелях)
Команда Profile (Профиль) (на обеих панелях)