20474

Ефективність програмного забезпечення та її оцінка

Доклад

Информатика, кибернетика и программирование

Оптимізація це покращення характеристик програмної системи або просто програми. Отже перший етап програмування створення правильної програми і лише другий її оптимізація. Але перед тим як починати покращувати ефективність програми слід перевірити наскільки це покращення буде корисним і точно визначити місце яке слід переробити. Справа у тому що існує правило 20 80: 20 обєктного коду тексту програми виконується 80 часу роботи всієї програми.

Украинкский

2013-07-25

36 KB

1 чел.

    15.Ефективність програмного забезпечення та її оцінка

Ефективність – це степінь сумірності результатів з витратами.Вона є дуже важливою характеристикою.Користувач завжди віддає перевагу більш ефективному рішенню навіть у тих випадках, коли ефективність не є вирішальним фактором.

Оптимізація – це покращення характеристик програмної системи або просто програми.

Отже, перший етап програмування – створення правильної програми, і лише другий – її оптимізація. Але перед тим, як починати покращувати ефективність програми, слід перевірити, наскільки це покращення буде корисним, і точно визначити місце, яке слід переробити.

Справа у тому, що існує правило 20/80: 20% об’єктного коду (тексту програми) виконується 80% часу роботи всієї програми. Деякі програми наукових обчислень дають навіть співвідношення 3/90.

Ця невелика частина програми, виконання якої займає більшу частину часу роботи програми, називається критичною областю. Саме критичну область і слід оптимізувати.

Для підвищення ефективності программ користуюсться такими засобами:

Вибір алгоритму

Найбільш важливим фактором у прискоренні роботи програми є вибір алгоритму або структури даних – між ефективним алгоритмом та неефективним може бути величезна різниця.

Зниження потужності виразів

Цей термін означає такий вид оптимізації, коли більш дорога операція (в сенсі часу виконання) заміняється на більш дешеву. Колись це означало в першу чергу заміну множень додаваннями або зсувами. Для сучасних процесорів тепер це майже нічого не покращує, оскільки множення виконується практично так само швидко, як і додавання. Але ділення та взяття залишку від ділення виконуються суттєво (приблизно в 10 разів) повільніше за множення, отже, код програми значно покращиться, якщо ділення замінити множенням на обернену величину. 

Видалення надмірних операцій 

Якщо деяке складне обчислення зустрічається в вашій програмі декілька разів, виконайте його один раз, запам’ятавши результат. 

Використання констант та ініціалізація змінних. 

Якщо початкові значення надаються змінним одночасно з їх визначенням, відбувається економія часу виконання програми, тому що змінні таким чином ініціалізуються не під час виконання програми, а під час компіляції.

Логічні вирази 

Економії часу можна добитись правильним розташуванням складних логічних виразів. Більшість компіляторів зупиняють подальше обчислення виразу, якщо його результат вже відомий.

Індексація 

Якщо можна не використовувати багатовимірні масиви, то краще цього не робити (при кожному звертанні до елемента багатовимірного масива, наприклад, A[i,j], відбувається перерахування дійсної адреси елементу масива, оскільки у пам’яті масив розташований лінійно). Отже, якщо це можливо, зведіть до мінімуму кількість звертань до елементів масивів, особливо багатовимірних.

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

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

Видалення надмірних операцій 

Повторні обчислення в циклах є типовою помилкою, яка впливає на ефективність. В наступних прикладах із циклів видалені інваріантні вирази.

Порядок вкладання циклів 

Організація та виконання циклів типу for вимагають деяких неявних додаткових затрат часу часу на ініціалізацію змінної циклу та на перевірку на кожному кроці необхідності завершення циклу. Правильною організацією вкладених циклів можна економити час роботи програми.


 

А также другие работы, которые могут Вас заинтересовать

7987. Курс лекций по системе AutoCAD 2.86 MB
  Оглавление. Оглавление. Рисунки. Команды общего редактирования. Настройка программы Простейший шаблон Использовать шаблон Использование волшебника. Выбор мастера. Настройка размерных параметров. Настройка размерных стилей. Диаметр...
7988. Исследование надежности работы систем связи с подвижными объектами 82.5 KB
  Исследование надежности работы систем связи с подвижными объектами. ЦЕЛЬ ЗАНЯТИЙ Изучить особенности проектирования систем связи с подвижными объектами (ССПО). Определить на трассах распространения сигнала одного направления  медианные мощности...
7990. Обоснование мероприятий повышения окупаемости пассажирских перевозок с оптимизацией существующей маршрутной сети, структуры парка автобусов в городе Речице 2.93 MB
  Городской транспорт имеет решающее значение для экономики и жизненно важен для мобильности населения, однако элементарное отсутствие достаточных финансовых средств не позволяет управлять системой городского транспорта в ее нынешнем структурном виде и содержать ее.
7991. Разработка программного обеспечения модуля управления и отладки комплекса КИИБ 637 KB
  Комплекс успешно применяется в испытательной лаборатории «Безопасность и ЭМС технических средств» в течение пяти последних лет. Имеется положительный опыт испытаний устройств и систем на базе микроконтроллеров Microchip, Atmel
7992. Перспективы формирования регионального международного финансового центра в Москве 462.5 KB
  Формирование регионального международного финансового центра в Москве. Место валютно-финансового сотрудничества в развитии экономической интеграции. Международные финансовые центры в мировой экономике...
7993. Диагностика психологической готовности к школе 126.5 KB
  Под психологической готовностью к школьному обучению понимается необходимый и достаточный уровень психического развития ребенка для освоения школьной учебной программы в условиях обучения в коллективе сверстников. Психологическая готовность ребенка к школьному обучению - это один из важнейших итогов психического развития в период дошкольного детства.
7994. Теория механизмов и основы теории машин-автоматов 378 KB
  Введение Механика машин представляет собой науку, состоящую из двух дисциплин. Первая носит название теория механизмов, а вторая носит название теория машин. В теории механизмов изучают свойства отдельных типовых механизмов, применяемых в самых...
7995. Коллектив учащихся. Взаимоотношения личности и коллектива. Пути развития детского коллектива 31.5 KB
  Коллектив учащихся. Взаимоотношения личности и коллектива. Пути развития детского коллектива В педагогической литературе коллектив - объединение учащихся, отличающихся рядом важных признаков: Общая социально значимая цель: а) цель должна с...