Жертвуем скоростью ради памяти
Упаковка. Способы уплотненного представления данных позволяют уменьшить затраты памяти за счет быстроты обращения к этим данным.
Интерпретаторы. Объем кода программы часто может быть уменьшен с помощью интерпретаторов, позволяющих компактно представить последовательности часто используемых операторов.
Циклы
Выносить код из циклов. Вместо того, чтобы выполнять некоторую операцию в теле цикла каждый раз при его проходе, лучше вызвать ее один раз вне цикла.
Совмещение проверок. Внутренний цикл должен содержать минимально возможное количество проверок, а лучше всего только одну. Программист должен стараться уменьшить количество условий завершения цикла их объединением.
Раскрытие цикла. Раскрытие цикла позволяет избавиться от затрат на изменение значения индексов, помогает избежать остановов конвейера, уменьшает количество ветвлений и увеличивает параллелизм на уровне инструкций.
Раскрытие циклов передачи. Если большая часть внутреннего цикла состоит в тривиальных операциях присваивания, их часто можно удалить из цикла, если перепланировать использование переменных. Чтобы исключить присваивание i=j, нужно в последующем коде ставить вместо переменной i переменную j.
Удаление безусловных переходов. В быстром цикле не должно быть безусловных переходов. Безусловный переход в конце цикла может быть удален путем «поворота» этого цикла таким образом, чтобы в конце его оказалось условное ветвление. Эта операция обычно выполняется оптимизирующими компиляторами.
Слияние циклов. Если два соседних цикла работают с одним и тем же набором элементов, то их тела следует объединить, чтобы осталась только одна управляющая конструкция (заголовок цикла).
-
Содержание
- Тема 1 Основные понятия и определения
- Тема 3 Проектирование программных продуктов.
- Основные группы методов
- Эвристические методы
- Метод итераций (последовательного приближения)
- Метод декомпозиции
- Метод контрольных вопросов
- Тема 4 Структура и формат, статические и динамические данные.
- Тема 5 Стандартизация программных продуктов
- Стандартизация программных продуктов
- Система качества пп
- Тема 6 Модульное программирование
- Тема 6 Модульное программирование
- 2. Минимизации количества передаваемых параметров
- Тема 7 Эффективность и оптимизация программ
- 1. Эффективность и технологичность. Способы экономии памяти. Способы уменьшения времени выполнения
- 2. Правила оптимизации программ
- Жертвуем памятью ради скорости
- Жертвуем скоростью ради памяти
- Логические правила
- Составление процедур
- Составление выражений
- Тема 8 Требования и спецификация качества к программных продуктов
- Тема 9 Защита программ
- Тема 10 Инструментальные средства разработки программ
- Тема 11 Коллективная разработка программных средств
- 1.1 Структура управления разработкой программных средств.
- Тема 12 Объектный подход к разработке программных продуктов
- Тема 13 Факторы надежности программных продуктов
- Тема 14 Структурное программирование программных продуктов
- Тема 15 Объектно-ориентированное программирование (ооп)
- Тема 15 Объектно-ориентированное программирование (ооп)
- Тема 16 Стиль программирования
- Тема 16 Стиль программирования
- Тема 17 Отладка, тестирование, сопровождение программ
- 2.Тестирование «белым ящиков»
- 6.Виды сопровождения и отладок пп.
- Тема 18 Экономические аспекты создания и использования программных средств
- Тема 20 Пакеты прикладных программ
- Тема 21 Язык программирования Турбо-Пролог
- Язык Пролог
- Тема 22 Списки и структуры в Прологе.
- Списки в Прологе
- Тема 23 Работа с файлами и динамическими базами данных в Прологе
- Работа с файлами
- Работа с файлами
- 3.6.3. Динамические базы данных