Быстродействие сайтов и веб-приложений

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

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

Быстродействие бэкенда и хостинга

Основная метрика — время генерации страницы. Это интервал времени, который необходим, чтобы сервер принял запрос, обработал его и сформировал ответ.

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

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

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

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

Быстродействие фронтенда

Основные метрики — объём передаваемых данных и среднее требуемое время до возможности взаимодействия с интерфейсом.

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

На время до интерактивности влияет как требуемый объём загрузки ресурсов, описанный выше, так и сложность DOM-дерева для отрисовки и ресурсоёмкость клиентских подпрограмм на JavaScript. Упрощение процесса отрисовки и оптимизация JS-скриптов в сочетании с возможностями ленивой загрузки компонентов (или загрузки по требованию) позволяет сократить время, требуемое для готовности клиентской части веб-приложения к взаимодействию с пользователем.

Рекомендации по быстродействию

Нормальным показателем времени генерации сложной страницы сайта является 0.2-0.5 секунд — это показатель достижим на любой коробочной CMS. Если страницы вашего сайта генерируются долго (более 1 секунды), то это может вызывать дискомфорт пользователей и вам стоит рассмотреть варианты оптимизации производительности серверной части.

Если вы только создаёте сайт или новое веб-приложение, то перед стартом проекта сформулируйте перед разработчиками требования к быстродействию системы — для достижения высоких показателей (генерация страниц менее чем за 0.1 секунды) обычно требуется использовать подходящие платформы и особые подходы к архитектуре приложения.

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

Воспринимаемая пользователями скорость работы — это всегда сумма скоростей работы бэкенда и фронтенда.

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

Мы разрабатываем сайты, которые работают по-настоящему быстро: генерация страниц осуществляется за доли секунды, а загрузка сайта даже на медленных каналах занимает не более пары секунд.

Скорость работы веб-приложений очень важна для коммерческих проектов: пользователи не любят ждать и если сайт работает недостаточно быстро, то это их раздражает и они просто уходят. В системах для автоматизации бизнес-процессов показатель скорости работы тоже очень важен — продуктивность работы страдает, если система «зависает» или «тормозит».

Узнать больше →

Скорость работы веб-приложения — одна из ключевых метрик качества реализации проекта, значительно влияющая на коммерческую эффективность.

Причин для сбоев в работе веб-приложений немало — это и выход из строя серверного оборудования, и сбои программного обеспечения, и аварии на уровне дата-центров. 

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

Узнать больше →

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

Cтатьи по теме:

Увеличиваем скорость работы сайта при помощи оптимизации JavaScript
Сайт может работать быстрее, если выполнены следующие рекомендации по оптимизации JS-кода. Если же этого не сделать, то сайт будет недостаточно быстро отображаться на стороне клиента.
Ускоряем работу сайта: оптимизация HTML
Сайт может загружаться и отображаться быстрее, если выполнить следующие рекомендации по оптимизации HTML-разметки, а без этого скорость загрузки и отрисовки будет ниже.
Ускоряем работу сайта за счёт оптимизации CSS
Время загрузки и отрисовки сайта в браузере можно заметно снизить, если воспользоваться следующими советами.
Ускоряем работу сайта с помощью серверного кеширования
Если простым языком, то серверное кеширование — это ряд технологий, которые позволяют «запоминать» один раз полученные или созданные данные, а затем многократно использовать их повторно, что способствует увеличению скорости отклика и снижает нагрузку на серверное оборудование.
Ускоряем работу сайта: используем Redis для кеширования и хранения данных
Redis — сетевое журналируемое хранилище данных типа «ключ — значение», которое обрабатывает данные в оперативной памяти и обладает механизмами снимков и журналирования для обеспечения постоянного хранения. Хранилище поддерживает работу с пятью типами данных: со строками, списками, хешами, обычными и сортируемыми множествами.
Ускоряем работу сайта при помощи кеширования на базе Memcached
Memcached — это хранилище «ключ => значение», использование которого очень эффективно для ускорения работы сайта или веб-приложения.
JPEG и PNG — в чём разница форматов?
JPEG и PNG — это два основных формата для изображений, которые используются на сайтах. В некоторых случаях лучше использовать JPEG, а в некоторых — PNG.

Тематические технологии:

Язык программирования Ruby
Фреймворк Ruby on Rails
Поисковая система ElasticSearch
СУБД Redis
Язык разметки HTML
CSS — каскадные таблицы стилей
Язык программирования JavaScript
Библиотека React