Стратегии оптимизации производительности последней инстанции
Предложения:
- Предварительное вычисление, а не повторное вычисление: любые циклы или повторяющиеся вызовы, содержащие вычисления с относительно ограниченным диапазоном входных данных, рассмотрите возможность поиска (в массиве или словаре), который содержит результат этот расчет для всех значений в допустимом диапазоне входных данных. Затем используйте вместо этого простой поиск внутри алгоритма.
Недостатки: если на самом деле используется мало предварительно вычисленных значений, это может усугубить ситуацию, а также поиск может занять много памяти. - Не используйте библиотечные методы: большинство библиотек должны быть написаны для правильной работы в широком диапазоне сценариев, а также для выполнения нулевых проверок параметров и т. д. Повторно реализовав метод, вы можете уметь исключить много логики, которая не применима в конкретных обстоятельствах, в которых вы ее используете.
Минусы: написание дополнительного кода означает большую поверхность для ошибок. - Использовать библиотечные методы: чтобы противоречить самому себе, языковые библиотеки пишут люди, которые намного умнее вас или меня; скорее всего, они сделали это лучше и быстрее. Не реализовывайте это самостоятельно, если вы не можете сделать это быстрее (т. Е. Всегда измерять!)
- Обман: в некоторых случаях, хотя для вашей проблемы может существовать точный расчет, вам может не понадобиться «точное», иногда приближение может быть «достаточно хорошим» и намного быстрее в сделке. Спросите себя, действительно ли имеет значение, если ответ отклоняется на 1%? 5%? даже 10%?
Недостатки: ну ... ответ не будет точным.
optimize
performance
optimization
language-agnostic
2021-12-22T14:24:43+00:00
2022-09-07T08:11:26+00:00
XaniiL
Вопросы с похожей тематикой, как у вопроса:
Стратегии оптимизации производительности последней инстанции
Предупреждение о файлах Cookies
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.