20474

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

Доклад

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

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

Украинкский

2013-07-25

36 KB

0 чел.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Індексація 

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

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

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

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

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

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

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


 

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

40523. Принципы классификации звуков речи. Гласные и согласные 20.5 KB
  Гласные и согласные. акустический Гласные состоят из тона согласные либо из шума либо из шума тона. артикуляторный 1 при образовании гласных напрягается весь речевой аппарат при образовании согласных напряжение локализовано 2 по силе выдыхаемой воздушной струи при образовании гласных голосовая струя слабее 3 Функционально различаются по роли в слоге гласные – слогообразующие согласные – примыкают к ним 4 По сочетаемости.
40524. ПРИНЦИПЫ ФОНЕМОЛОГИИ 77.5 KB
  В языке нет и не может быть элементов не выделенных в известном определенном отношении к его семантической стороне или лучше сказать к характерной для данного языка системе семасиологизации и в этом смысле всякое языковое явление как предмет лингвистики конечно значимо . Однако отношение звуковой стороны к семантической может быть двояким: внеконтекстовые единства звуковых признаков выделенные в отношении к системе индивидуальных значимостей [7] в языке и будут лингвистическим соответствием психофонетической фонемы иначе значимых ...
40525. Синонимия, ее виды, источники и роль в языке. Антонимия. Языковая и контекстуальная антонимия 21.5 KB
  Антонимия. Языковая и контекстуальная антонимия. Антонимия. Речевая антонимия контекстная.
40526. Стилистическое расслоение словарного состава я:зыка 20.5 KB
  Все слова языка можно разделить на: нейтральные межстилевые – в любом стиле литературного языка.
40527. Структура языка, его системность. Основные единицы языка, их функции 38.5 KB
  Уровень Единица Функция Пример Фонетикофонологический Фонема звук перцептивная восприятия Сигнификативная смыслоразличительная Том – дом Угол – уголь Морфемноморфологический Морфема Семасиологическая выражение значения Приставка с Суффикс щик Лексикосемантический Слово – лексема слово с точки зрения его значения Номинативная назывная Окно Синтаксический Предложение Коммуникативная Мама мыла раму Системность уровня Единицы внутри уровня взаимосвязаны изменение одной единицы приводит к перегруппировке всего уровня. –...
40528. Типы лексических значений слова. Многозначность и пути ее развития 33 KB
  Типы лексических значений слова. Предметная отнесенность слова денотативный компонент значения. Обычно слово – предмет действие или признак – номинативная функция знаменательные слова. Числительные междометия служебные слова не имею денотативного компонента.
40529. Язык как особая знаковая система. Язык и мышление 33 KB
  Язык как особая знаковая система. Язык и мышление. Язык как особая знаковая система. Язык – знаковая система естественно возникшая закономерно развивающаяся социально предназначенная.
40530. Омонимия, ее виды, источники и роль в языке. Разграничение омонимии и полисемии 21 KB
  Омонимия – разные слова с одинаковым звуковым составом. Типы омонимов: лексические омонимы слова относящиеся к одному грамматическому разряду имеют одинаковое звучание и написание: лук. омоформы – слова у которых совпадают определенные грамматические формы. омофоны – слова которые одинаково звучат но пишутся поразному.
40531. Графика 15.24 KB
  Состоят из: Правила чтения напр. u может быть ju ʌ или u Правила написания напр. Правила орфографии – правила написания значащих языковых единиц морфем и слов Правила орфоэпии – правила озвучивания при чтении значащих языковых единиц морфем и слов Правила орфографии строятся на базе правил графики и нужны ТОЛЬКО если по правилам графики есть вариант напр.