Оптимизация - это процесс улучшения метода или дизайна. В программировании оптимизация обычно принимает форму увеличения скорости алгоритма или сокращения необходимых ему ресурсов. Другое значение оптимизации - численные алгоритмы оптимизации, используемые в машинном обучении.

В области компьютерных наук оптимизация- это процесс модификации системы, чтобы заставить ее работать более эффективно или использовать меньше ресурсов. В целом, компьютерная программа может быть оптимизирована таким образом, чтобы она выполнялась быстрее или могла работать с меньшим объемом памяти или другими ресурсами или потреблять меньше энергии Wikipedia . Другие ресурсы могут включать доступ к диску, пропускную способность связи, производительность видео и отзывчивость пользовательского интерфейса.

Общие цели оптимизации программного обеспечения:

  • Разработайте или эффективность алгоритма.
  • Уровень исходного кода. Например, Устройство Даффа.
  • Флажки уровня сборки или оптимизатора, часто торгующие временем сборки для эффективности времени выполнения.
  • Уровень компиляции; Выбор лучшего компилятора.
  • Уровень сборки. Лучшая машина, отображающая проблему.
  • Время выполнения Примерами могут служить параметры виртуальной машины и оптимизация по профилю.

Менее строго программные цели оптимизации:

  • Оптимизация запросов. Это процесс улучшения дизайна запросов к базе данных для повышения производительности за счет оптимизации.
  • численная оптимизация.
  • Учитель / коллега счастья. Написание программного обеспечения таким образом, чтобы какой-то важный человек или группа людей оценили код, прочитанный человеком, например, для ясности и простоты обслуживания.

Распространенной опасностью оптимизации является преждевременная оптимизация. Оптимизация часто имеет последствия в отношении сложностии ремонтопригодность. Напротив, наиболее существенное влияние на оптимизацию оказывает уровень разработки с помощью эффективности алгоритма; это самая ранняя стадия развития, ведущая к парадоксу.

При использовании этого тега, то есть вопроса об оптимизации, укажите цель оптимизации, которую вы имеете в виду. Приведенные выше списки показывают, что многие возможные цели оптимизации являются взаимоисключающими. Следовательно, невозможно оптимизировать все; а оптимизация без четкой цели - еще одна распространенная опасность, которая делает вопрос слишком широким или неясным.

Смотрите также: profilingassemblycompiler