20474

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

Доклад

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

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

Украинкский

2013-07-25

36 KB

1 чел.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Індексація 

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

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

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

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

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

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

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


 

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

10184. Развитие техники в средние века. Создание доменной печи, часового механизма, печатного станка 41 KB
  Развитие техники в средние века. Создание доменной печи часового механизма печатного станка Период средневековья длившейся с V по первую половину XV в. оказался в целом благоприятным для технического развития что имеет свое объяснение. В 476 г. н.э. под напором варваров ...
10185. Техническая мысль эпохи Возрождения. Изобретения и инженерная деятельность Леонардо да Винчи 34.5 KB
  Техническая мысль эпохи Возрождения. Изобретения и инженерная деятельность Леонардо да Винчи Гениальным ученым-изобретателем эпохи Возрождения был Леонардо да Винчи 1452-1519 гг.. Он являлся незаконнорожденным сыном нотариуса. Когда Леонардо исполнилось 15 лет отец устр...
10186. Техника XVII - XVIII вв. Создание и использование паровой машины 43.5 KB
  Техника XVII-XVIII вв. Создание и использование паровой машины На протяжении практически всего XVII в. главным источником энергии оставался водяной двигатель. О его потенциальных возможностях свидетельствует крупнейшая гидротехническая установка сооруженная на реке Сена
10187. Трудовая биография и изобретательская деятельность И.И. Ползунова 33.5 KB
  Трудовая биография и изобретательская деятельность И. И. Ползунова Первый в мире универсальный паровой двигатель изобрел русский механик И. И. Ползунов 1728-1766 гг.. Он родился в Екатеринбурге в семье рядового солдата. Окончив горнозаводскую школу. Ползунов стал трудитьс
10188. Стефенсон Д. - основатель мирового локомотивостроения и железнодорожного дела 32 KB
  Д. Стефенсон основатель мирового локомотивостроения и железнодорожного дела Основоположником железнодорожного транспорта принято считать английскою инженера Джорджа Стефенсона 1781-1848 гг.. Он родился в семье потомственных рабочих угольных копи Ньюкасла где и сам на...
10189. Механики Черепановы и их роль в создании первого российского паровоза 34 KB
  Механики Черепановы и их роль в создании первого российского паровоза Первый российский паровоз был создан отцом и сыном Черепановыми Ефимом Алексеевичем 1774-1842 гг. и Мироном Ефимовичем 1803-1849 гг.. Они происходили из крепостных крестьян Выйского завода на Урале. Отец
10190. Технические достижения XIX в. Изобретение радио и двигателя внутреннего сгорания 40 KB
  Технические достижения XIX в. Изобретение радио и двигателя внутреннего сгорания Применение паровой машины на производстве и транспорте обусловило подлинную промышленную революцию XIX в. Механизмом которому было суждено коренным образом изменить жизнедеятельность люд
10191. Развитие средств транспорта в XX – начале XXI вв. Состояние и перспективы железнодорожного дела в современной России 36.5 KB
  Развитие средств транспорта в XX начале XXI вв. Состояние и перспективы железнодорожного дела в современной России Двигатель внутреннего сгорания помог человеку твердо обосноваться в воздушном пространстве. Использование в этих целях паровой машины оказалось неудачн...
10192. Основные этапы освоения космоса. Жизненный путь и научная деятельность К.Э. Циолковского 34 KB
  Основные этапы освоения космоса. Жизненный путь и научная деятельность К.Э. Циолковского Крупные успехи современной тяжелой авиации всецело связаны с использованием реактивного двигателя. Он основан на принципе движения ракеты т.е. противодействии силе термической р