Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1.9, вопросы 3-7.doc
Скачиваний:
7
Добавлен:
20.04.2019
Размер:
4.26 Mб
Скачать
  1. Оптимизация программного обеспечения

Прикладное ПО характеризуется качественными и количественными показателями такими как эффективность, сложность, мобильность, надежность.

Эффективность является количественной х-кой и оценивается 2мя критериями: процессорным временем выполнения и объемом используемой памяти

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

В системах реального времени в качестве основного критерия выступает время выполнения программы

Задача оптимизации программы по времени выполнения:

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

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

Набор процедур зависит от

  1. Класса решаемых задач

  2. Языка программирования

  3. ОС

  4. Особенности использ ЭВМ

Требования к оптимизации:

  1. Сохранять функции , которые выполняла программа, т е производить равносильные преобразования

  2. Не ухудшать качества ни одной программы

  3. Улучшать качества некоторых программ, входящих в область применения процедур

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

Оптимизация процедур:

  1. Оптимизация циклов

  2. Опт. вычислительной информации

  3. Опт.инструкций передачи упрвления

  4. Опт.операций ввода/вывода

  5. Опт.эффективности использования памяти

Оптимизация цикла

Большая часть процессорного времени приходится на выполнение циклов. Здесь может достигаться самый значительный выигрыш от оптимизации.

Цикл на Фортране:

  1. Технология программирования поиска информации

Дополнение .Фибоначчиев поиск

При реализации этого метода для нахождения интервала поиска

используются числа Фибоначчи. Числа Фибоначчи получаются по рекуррентной формуле

F = F + F , где r = 3, 4, 5,..., F = 0, F = 1.

В методе Фибоначчи, так же как и в однородном бинарном поиске, используются два указателя: i - текущее положение и величина H изменения, но они выбираются в соответствии с числами Фибоначчи. Значение i выбирается равным числу Фибоначчи F , а Н - равным F .

Алгоритм Фибоначчиева поиска состоит из предварительного этапа и 4 шагов. Первоначально определяется такое число M>=0, что N + M + 1 = F , где F > N есть ближайшее к N число Фибоначчи. Устанавливают i = F , P = F , H = F . Если первый проверяемый ключ K < A, то устанавливают i = i - M.

Пример 1.

1 4 5 8 9 12

А = 8, N = 6.

= = 8; M = 1; I = 5; m = 2; P=3; 9 > 8; m # 0; I=3;

P=2; m = 1; 8 > 5; P # 1; I = 4; P=1; m=0;

1 4 5 8 9 12; Удача!

Пример 3

1 4 5 8 9 12

А = 11, N = 6.

= = 8; M = 1; I = 5; m = 2; P=3; 9 < 11; m # 0; I=4;

1 4 5 8 9 12

I=6;P=1; m = 1; 1 4 5 8 9 12

I = 5; P=1; m=0;

1 4 5 8 9 12; Неудача!