[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Руководство по настройке производительности


Оптимизация исполняемых программ с помощью программы fdpr

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

# lslpp -lI perfagent.tools

Команда fdpr относится к утилитам настройки производительности. Она позволяет повысить производительность пользовательских приложений и эффективность использования оперативной памяти. Для работы программы fdpr не нужен исходный код оптимизируемого приложения. Однако, оптимизация программ без информации о компиляции не поддерживаются. Если у вас есть исходный код программы, то вы можете скомпилировать его с флагом -qfdpr. В этом случае исполняемая программа будет содержать информацию, позволяющую гарантировать работоспособность кода, измененного программой fdpr. Флаг -qfdpr должен указываться при компиляции всех объектных модулей программы. Если указан флаг -qfdpr, то статическое связывание не повышает производительность программы.

Утилита fdpr изменяет порядок инструкций исполняемой программы, улучшая работу кэша инструкций, таблицы преобразования адресов (TLB) и оперативной памяти за счет следующих операций:

Например, анализируя оператор "if-then-else", программа fdpr может прийти к выводу, что альтернативная (стоящая после else) ветвь используется чаще, чем основная (стоящая после then). В этом случае программа инвертирует условие и поменяет местами ветви, как показано на следующем рисунке.

Рис. 6-1. Пример изменения оператора условия. На рисунке показано, каким образом программа изменит оператор условия. Например, выражение If (условие) будет заменено на If (! условие), операторы then, else и endif останутся без изменений, а инструкции из основной и альтернативной части оператора будут поменяны местами.
Рисунок h06f10

В результате оптимизации увеличение производительности больших (>5 Мб) приложений, активно использующих процессор, достигает 23 процентов, хотя обычно составляет 5-20 процентов. Сокращение объема физической (невыгружаемой) памяти, занимаемого кодом программы, достигает 70 процентов, хотя обычно составляет от 20 до 50 процентов. Конкретные значения зависят от типа приложения и опций программы fdpr.

Работа программы fdpr состоит из трех этапов:

  1. Сначала оптимизируемый исполняемый модуль настраивается для сбора данных о производительности.
  2. Затем программа запускается в рабочей системе. При выполнении программы собирается информация о производительности.
  3. На основе этих данных выполняется оптимизация. Полученный исполняемый модуль должен работать с указанными при запуске данными более эффективно. Очень важно, чтобы утилита fdpr применялась для оптимизации программы в той рабочей схеме, в которой эта программа будет действительно применяться. Производительность оптимизированной программы при работе с сильно отличными данными заранее предсказать невозможно. В частности она может оказаться ниже, чем у первоначальной версии.

Например, команда:

# fdpr -p имя-программы -R3 -x test.sh

собирает данные о работе программы имя-программы на основании тестовых данных из файла test.sh. На основании полученного вывода будет выполнена максимальная (-R3) оптимизация программы. В результате будет создан новый модуль, которому по умолчанию присваивается имя ProgramName.fdpr. Степень улучшения характеристик оптимизированной программы по сравнению с исходной в существенной степени зависит от того, насколько точно файл test.sh похож на стандартный файл, обрабатываемый программой.

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

При работе с программой fdpr придерживайтесь следующих рекомендаций:


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]