Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Итерация




Оценка производительности

Относительное быстродействие распространенных операций

Частые причины снижения эффективности

Заблуждения об оптимизации кода

Принцип Парето

Введение в оптимизацию кода

Оптимизация кода

Оборудование

Компиляция кода

Иногда правильный выбор компилятора позволяет забыть об оптимизации кода.

Иногда самым выгодным и эффективным способом повышения производительности программы является покупка нового оборудования.

Оптимизацией кода (code tuning) называют изменение корректного кода, направленное на повышение его эффективности.

Это не самый эффективный способ повышения производительности.

Овладение мастерством написания эффективного кода — признаком превращения в серьезного программиста.

Принцип Парето, что 80% результата можно получить, приложив 20% усилий.

Доведите работу до конца и только потом совершенствуйтесь.

Сокращение числа строк высокоуровневого кода повышает быстродействие или уменьшает объем итогового машинного кода — НЕВЕРНО!

Одни операции, вероятно, выполняются быстрее или компактнее других — НЕВЕРНО!

Оптимизацию следует выполнять по мере написания — НЕВЕРНО!

Быстродействие программы не менее важно, чем ее корректность — НЕВЕРНО!

3. Где оптимизировать?

Операции ввода/вывода.

Системные вызовы.

Ошибки.

Большинство частых операций — в том числе вызовы методов, присваивание, арифметические операции над целыми числами и числами с плавающей запятой — имеет примерно одинаковую цену. Трансцендентные математические функции очень дороги. Вызовы полиморфных методов чуть дороже вызовов других методов.

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

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

Методики можно эффективно комбинировать, поэтому даже после обнаружения одного удачного вида оптимизации продолжайте пробовать другие виды.

6. Подход к оптимизации кода: резюме

Рассматривая целесообразность оптимизации кода, придерживайтесь следующего алгоритма:

  1. Напишите хороший и понятный код, поддающийся легкому изменению.
  2. Если производительность вас не устраивает:
    1. сохраните работоспособную версию кода, чтобы позднее вы могли вернуться к «последнему нормальному состоянию»;
    2. оцените производительность системы с целью нахождения горячих точек;
    3. узнайте, обусловлено ли плохое быстродействие неадекватным проектом, неверными типами данных или неудачными алгоритмами и определите, уместна ли оптимизация кода; если оптимизация кода неуместна, вернитесь к п. 1;
  3. d оптимизируйте узкое место, определенное на этапе (с);
    1. оцените каждое улучшение по одному за раз;
    2. если оптимизация не привела к улучшению кода, вернитесь к коду, сохраненному на этапе (а).
  4. Повторите процесс, начиная с п. 2.

 

 


Лекция 13-15 «Тестирование»

 




Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 330; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.