Оптимізація програмного коду

Оптимізація програмного коду називають зміну коректного коду, спрямоване на підвищення його ефективності. «Оптимізація» має на увазі внесення невеликих змін, які зачіпають один клас, один метод, а найчастіше - кілька рядків коду. Великомасштабні зміни проекту або інші високорівневі способи підвищення продуктивності оптимізацією не зважають. Це не найефективніший спосіб підвищення продуктивності. Поліпшення архітектури програми, перепроектування класів і вибір більш ефективного алгоритму - призводять до більш вражаючих результатів. Крім того, оптимізація коду не найлегший спосіб підвищити продуктивність: легше купити нове обладнання або компілятор з поліпшеним модулем оптимізації. Нарешті, це не найдешевший спосіб підвищити продуктивність: на оптимізацію коду вручну спочатку йде багато часу, а потім оптимізований код важче супроводжувати.

1). Розширити структуру даних додаванням додаткової інформації або змінити уявлення даних в цій структурі. 2). Обчислення результатів заздалегідь і їх зберігання, для подальшого використання. 3). Застосування упаковки даних. 4). Внутрішній цикл повинен містити min мож-ли кількість перевірок, а найкраще тільки одну. 5). Видалення безумовних переходів. 6). Логічні перевірки повинні бути располо-дружини так, щоб більш швидкі умови, які частіше виявляються пра-Вільно, стояли перед більш повільними умовами, які рідше виявляються правільнимі.7). Логічна функція на невеликому безлічі вихідних значень може бути замінена таблицею, що представляє це множество.8). Видалення однакових виразів. 9). Якщо два і більше однакових вираження часто обчислюються поспіль, їх слід винести в підпрограму. 10). Зміна типів даних може виявитися ефективним способом скорочення коду і підвищення його швидкодії. 11). Переписування коду на низкоуровневом мовою. При низькому швидкодії код слід переписати на мові низького рівня. Якщо ви пишете на С ++, мовою низького рівня може бути Assembler. Переписування коду на низкоуровневом мовою зазвичай позитивно впливає на швидкодію коду.

Методи оптимізації коду можуть застосовуватися на різних рівнях синтаксичних конструкцій: 1). на рівні оператора - більшість компіляторів виконують деяку оптимізацію на цьому рівні. 2). на рівні блоку - оптимізуючий компілятор виділяє операційну структуру програмі шляхом конструювання орієнтованого потокового графа програми, в кіт кожна вершина являє основний блок, а зв'язку м / у вершинами представляють потоки управління. Більшість компіляторів виробляють оптимізацію на рівні блоку. 3). на рівні циклу. 4). на рівні програми - найбільш складний рівень оптимізації.

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

42. Оформлення програм: основні пункти.

1) Опис реалізації (мова, середовище програмування, тестування, передбачуваного виконання):

· Розміри в байтах, операціях, рядках;

· Розміри необхідної пам'яті під дані;

· Необхідні технічні ресурси.

2) Звернення до підпрограми (число, тип і порядок передачі вхідних параметрів): спосіб передачі (за посиланням або за значенням).

3) Опис повертаються параметрів:

· Параметр, який повертає сама функція;

· Опис вхідних параметрів, які функція змінює.

4) Опис виняткових ситуацій і реакція програми на них.

5) Опис повідомлень програми, якщо вони є.

6) Короткий опис алгоритму:

· Якщо має назву, то вказати його;

· Назвати джерело або де наведено текст програми, звідки було взято алгоритм;

· Можна привести блок-схему.

8) Описати все вхідні і вихідні файли і короткий їх вміст.

9) Привести структури записи всіх файлів:

· Розбивка по полях записи;

· Для кожного поля вказати тип, довжину зміщення від початку запису.

Схожі статті