20474

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

Доклад

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

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

Украинкский

2013-07-25

36 KB

0 чел.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Індексація 

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

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

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

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

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

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

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


 

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

84863. Позначення буквами я, ю, є, ї двох звуків. Спостереження за позначення сполучення йо 395.5 KB
  Мета уроку: закріпити знання учнів про букви я ю є ї; зосередити увагу на випадках коли вони позначають два звуки; вчити учнів на слух розрізняти слова в яких букви я ю є ї позначають два звуки; спостерігати за позначенням буквосполучення йо вчити правильно переносити слова з цим буквосполученням...
84864. Узагальнення знань про розповідні, питальні і спонукальні речення 59.5 KB
  Мета: узагальнити і систематизувати знання учнів про речення; закріпити навички правильного інтонування речень та вміння перебудовувати речення одного виду в речення іншого виду за метою висловлювання; формувати вміння переключатися з одного виду роботи на інший засередженно слухати вчителя...
84865. Слова, які означають назви предметів. Складання речень 59.5 KB
  Мета: ознайомити дітей зі словами, які означають назви предметів, розширити й поглибити знання учнів про слова – назви предметів, вчити розпізнавати ці слова у мовленні, складати з ними речення; розвивати вміння групувати слова, класифікувати предмети.
84866. Наголос. Наголошені й ненаголошені склади і звуки 47.5 KB
  Мета: Вчити вмінню розпізнавати наголошені і ненаголошені склади. Закріпити вміння учнів ділити слова на склади. Оголошення теми уроку Ми з вами сьогодні на уроці будемо вчитися виділяти наголошені і ненаголошені звуки та склади в словах а також повправляємось у визначенні наголосу слів.
84867. Моя країна – Україна 76.5 KB
  Мета: удосконалення знань учнів про красу української мови її милозвучність і мелодійність; формування навичок виразного читання уміння аналізувати зміст прослуханого робити висновок; виховання любові до України рідної мови українського народу національної свідомості у дітей.
84868. Уявлення про слова-назви предметів 49 KB
  Уявлення про слованазви предметів. Ознайомити дітей зі словами які означають назви предметів розвивати вміння класифікувати предмети та ставити питання до назв конкретних предметів і назв істот; збагачувати словниковий запас учнів; розвивати спостережливість зв’язне мовлення...
84869. Слова протилежні за значенням (антоніми). Спостереження за роллю антонімів 66 KB
  Розвивати мовленнєві здібності учнів, лексичний запас, вміння аналізувати, характеризувати, класифікувати мовний матеріал, формувати та висловлювати власну думку; вчити працювати в групах. Виховувати почуття взаємодопомоги, взаємодії, товаришування, партнерства, прищеплювати любов до природи.
84870. А вже весна, а вже красна 72.5 KB
  В перший клас приходять діти, які мають обмежений словниковий запас, слабо розвинену дрібну моторику, неадекватні емоції і т.п. У багатьох дітей спостерігаються стійкі порушення мовлення. Щоб робота шкільного логопеда стала більш ефективнішою, йому потрібен тісний зв’язок з вчителем початкових класів.
84871. Розповідні речення. Інтонація при читанні розповідних речень. Розділові знаки в кінці розповідних речень. Слова, близькі за значенням 38 KB
  Дати учням уявлення про розповідне речення; розвивати навички інтонування розповідних речень з крапкою або знаком оклику в кінці; виховувати почуття любові до своєї Вітчизни. Сьогодні ми з вами побуваємо у містечку Речення. Вони хочуть допомогти вам у вивченні речення і розповісти багато нового і цікавого.