Оптимизация

Оптимизация

Оптимизация — системные изменения для улучшения эффективности.

Определение термина в Википедии

Системы могут быть совершенно разными. Это может быть как одиночная компьютерная программа, цифровое устройство, так и набор компьютеров или даже целая сеть вроде Интернет.

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

Важно. Хотя цель оптимизации - это получение приемлемой системы, действительно приемлемая система во время оптимизации не всегда является финальным продуктом.

Как показывает практика, универсального решения обычно не существует (дающего нужный результат во всех случаях), в связи с этим используют компромиссные действия для оптимизации и решения важнейших параметров. Ко всему этому, ресурсы и усилия, которые требуется затратить для полностью приемлемой по всем показателям программы, которую дальше улучшить невозможно, почти всегда превышают планку допустимого.

Оптимизация

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

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

Компромиссы

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

Действия по оптимизации, обычно требуют компромиссов — когда нужные нам параметры увеличивают свою работоспособность за счет других.

Различные области

Оптимизация

При исследовании операций, трудность выявления входных функций, во время которых она достигает своего минимального или максимального значения называют — оптимизация. 

В некоторых случаях на эти значения устанавливаются ограничения. Такие случаи известны как "ограниченная оптимизация".

Если речь идет о программировании, улучшение кода и самих его настроек для создания максимально эффективного ПО - это и есть оптимизация.

На сегодняшний день программисты позволяют себе пользоваться только "достаточно удачными" решениями, так как обыденные проблемы имеют достаточно большой ряд видов оптимизации.

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

В Google и Яндекс ежедневно трудятся, совершенствуя алгоритм сотни специалистов, в свою очередь им необходимо оптимизировать поисковый движок, чтобы повысить степень релевантности. Повышение релевантности выдачи при запросе, за счёт оптимизации поискового движка — задача любой поисковой системы, если конечно, она желает остаться "на плаву".