в разделе 10.3 и сортировка с помощью кучи в разделе 14.4 основаны на методе совместного использования (overlaying) структур, позволяющего уменьшить объем, занимаемый данными, путем совместного их хранения в одной области памяти.
• Хотя иногда при упаковке и приходится жертвовать временем ради памяти, упакованные данные иногда обрабатываются быстрее, чем неупакованные.
• Интерпретаторы. Объем кода программы часто может быть уменьшен с помощью интерпретаторов, позволяющих компактно представить последовательности часто используемых операторов.
• В разделе 3.2 интерпретатор используется для составления формальных писем, а в разделе 10.4 интерпретатор используется для простой графической программы.
Циклы
• Выносите код из циклов. Вместо того чтобы выполнять некоторую операцию в теле цикла каждый раз при его проходе, лучше вызвать ее один раз вне цикла.
• В разделе 11.1 оператор присваивания значения переменной t выносится из основного цикла программы isort2.
• Совмещение проверок. Внутренний цикл должен содержать минимально возможное количество проверок, а лучше всего только одну. Программист должен стараться уменьшить количество условий завершения цикла их объединением.
• Маркерные элементы являются наиболее часто встречающимся примером применения этого правила. Маркерный элемент помещается на границе данных в структуре, чтобы уменьшить стоимость проверки на достижение этой границы. В разделе 9.2 маркерный элемент используется при последовательном поиске в массиве. В главе 13 маркеры применяются для написания ясного и эффективного кода для массивов, связанных списков, корзин и двоичных деревьев поиска. В решении 14.4 маркер ставится на одном из концов кучи.
• Раскрытие цикла. Раскрытие цикла позволяет избавиться от затрат на изменение значения индексов, помогает избежать остановов конвейера, уменьшает количество ветвлений и увеличивает параллелизм на уровне инструкций.
• Раскрытие цикла последовательного поиска в разделе 9.2 уменьшает время его выполнения примерно на 50%, а раскрытие цикла двоичного поиска в разделе 9.3 уменьшает время его выполнения на величину от 35 до 65%.
Опубликовал vovan666
April 17 2013 00:05:41 ·
0 Комментариев ·
3621 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.