Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 277 278 279 280 281 282 < 283 > 284 285 286 287 288 289 .. 426 >> Следующая

изводительной системы, не "Допоянтаяьше ресурсы*
а конце тт Например, при высокоуровневом проектировании
одной
реальной программы сбора и обработки данных в качестве
ключевого атрибута была определена пропускная способность
обработки результатов измерений. Каждое измерение включало
определение значения электрической величины, калибровку
значения, масштабирование значения и преобразование исходных
единиц измерения (таких как милливольты) в единицы прикладной
области (такие как градусы Цельсия).
Если бы при высокоуровневом проектировании программисты не
оценили все факторы риска, им в итоге пришлось бы
оптимизировать алгоритмы вычисления многочленов 13 степени, т.
е. многочленов, содержащих 14 переменных с максимальной
степенью 13. Вместо этого они решили проблему, выбрав другое
оборудование и разработав высокоуровневый проект,
предусматривающий использование десятков многочленов 3
степени. Оптимизировав код, они вряд ли получили бы нужные
результаты. Это пример проблемы, которую нужно было решать на
уровне проектирования.
ГЛАВА 25 Стратегии оптимизации кода 575
Перекрестию мха 0 том, как программисты стремят к достижению
поставленных целей, ом. вдрвдея "Задание мелей" раздела 20,2,
Если объем и быстродействие программы действительно важны,
разработайте архитектуру так, чтобы она позволяла добиться
намеченных показателей, а затем задайте для отдельных
подсистем, функций и классов целевые показатели использования
ресурсов. Преимущества такого подхода таковы.
¦ Задание отдельных целевых показателей использования ресурсов
делает производительность системы предсказуемой. Если каждая
функция соответствует целевым показателям, вся система будет
обладать нужной производительностью. Вы можете уже на ранних
этапах определить проблемные подсистемы и перепроектировать
их или оптимизировать их код.
¦ Простое задание явных целей повышает вероятность их
достижения. Программисты стремятся к достижению целей, если
знают, каковы они; чем определеннее цели, тем легче к ним
стремиться.
¦ Вы можете поставить цели, которые непосредственно не
направлены на повышение эффективности, но способствуют этому в
долгосрочной перспективе. Эффективность часто лучше всего
рассматривать в контексте других аспектов. Так, простота
внесения изменений может создать лучшие условия для достижения
высокой эффективности, чем явное определение эффективности как
одной из целей. Если проект отличается высокой степенью
модульности и простотой изменения, менее эффективные
компоненты можно с легкостью заменить на более эффективные.
Перекрестная всыпка 0 типах данных и алгоритмах ом. книги,
указанные в разделе "Дополнительные ресурсы" а конце главы.
Проекты классов и методов
Проектирование классов и методов предоставляет еще одну
возможность повышения производительности ПО. Одним из способов
повышения производительности на этом уровне является выбор
типа данных или алгоритма, от чего обычно зависит и объем
используемой памяти, и быстрота выполнения кода. Именно на
этом уровне вы можете выбрать быструю сортировку вместо
пузырьковой или двоичный поиск вместо линейного.
Взаимодействие программы с ОС
Если ваша программа работает с внешними файлами, динамической
памятью или устройствами вывода, она скорее всего
взаимодействует с ОС. Низкая производительность в этом случае
может объясняться большим объемом или медленным выполнением
методов ОС. Вы можете даже не знать, что программа
взаимодействует с ОС: иногда вызовы системных методов
генерируются компилятором или содержатся в коде библиотек.
Компиляция кода
Хорошие компиляторы преобразуют ясный высокоуровневый код в
оптимизированный машинный код. Иногда правильный выбор
компилятора позволяет вообще забыть о дальнейшей оптимизации
кода.
Перекрестная ссылка 0 стратегиях борьбы со слишком медленными
или объемными методами ОС на уровне кода см. глазу Ж
576
ЧАСТЬ V Усовершенствование кода
В главе 26 вы найдете многочисленные примеры ситуаций, когда
код, сгенерированный компилятором, оказывается эффективнее
кода, оптимизированного вручную.
Оборудование
Иногда самым выгодным и эффективным способом повышения
производительности программы является покупка нового
оборудования. Конечно, если программа предназначен для сотнен
или тысяч компьютеров по всей стране, этот вариант
нереалистичен. Но если вы разрабатываете специализированное ПО
для нескольких пользователей, обновление оборудования на самом
деле может оказаться самым дешевым вариантом. Это позволит
сократить расходы, связанные с улучшением производительности
ПО и проблемами, которые могут из-за этого улучшения воз-
никнуть при сопровождении. Кроме того, это повысит
производительность всех программ, выполняемых на новых
системах.
Оптимизация кода
Оптимизацией кода (code tuning), которой посвящена оставшаяся
часть этой главы, называют изменение корректного кода,
направленное на повышение его эффективности. "Оптимизация"
Предыдущая << 1 .. 277 278 279 280 281 282 < 283 > 284 285 286 287 288 289 .. 426 >> Следующая