Моя книга 1982 года «Пишем эффективные программы» строилась на 27 правилах оптимизации кода. Эта книга уже не переиздается, поэтому я привожу правила здесь (с некоторыми небольшими изменениями), вместе с примерами их использования.
Жертвуем памятью ради скорости
• Расширение структур данных. Время выполнения определенных операций с данными может быть уменьшено, если структуру расширить добавлением дополнительной информации или изменить представление данных в этой структуре так, чтобы ускорить к ним доступ.
• В разделе 9.2 Райт нужно было найти ближайшие соседние точки на поверхности Земли, причем координаты их определялись широтой и долготой, что требовало применения дорогостоящих тригонометрических вычислений. Эппель расширил ее структуру, добавив туда декартовы координаты, что позволило вычислять расстояния по Евклиду, а это существенно быстрее.
• Вычисляйте результаты заранее и храните их. Стоимость повторного вычисления дорогостоящей функции может быть уменьшена путем однократного ее вызова и сохранения результата. Последующие вызовы обрабатываются с помощью таблицы, а не самой функцией.
• Кумулятивные массивы в разделе 8.2 и решении 8.11 позволяют заменить последовательность сложений двумя обращениями к таблице и вычитанием.
• В решении 9.7 программа подсчета битов ускоряется путем обращения к байту или слову целиком за один раз.
• В решении 10.6 сдвиг и логические операции заменены обращением к таблице.
Опубликовал vovan666
April 17 2013 00:05:36 ·
0 Комментариев ·
4050 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.