Mastering Swoole PHP: Build High Performance Concurrent System with Async and Coroutines / Осваиваем Swoole PHP: построение высокопроизводительной конкурентной системы с асинхронностью и корутинами: Проблемы производительности

Оглавление
Английский оригинал Перевод на русский

Сожалеем, но текст оригинала доступен только зарегистрированным пользователям.

Проблемы производительности

Kee 30.01.21 в 13:05

0

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

Kee 30.01.21 в 13:21

0

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

Kee 30.01.21 в 13:22

0

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

Kee 30.01.21 в 13:35

0

Переход на модель с частичным сохранением состояния со Swoole PHP может обеспечить прирост производительности в 2-5 раз. Только представьте, в некоторых проектах, где были применены Swoole и основные концепции, описанные в этой книге, в 10-100 раз снизилась стоимость серверов. Об улучшении производительности отчиталось множество команд из разных проектов по всему миру.

Kee 30.01.21 в 13:52

0

Каждый может и сам увидеть основные проблемы своих систем, связанных как с параллельным исполнением, так и с производительностью. Если перед вами не стоят вопросы высокой конкурентности запросов, корутины и асинхронный I/O будут для вас не слишком полезны. Поэтому, первым делом надо определить узкое место системы, понять, связаны ли первопричины проблем с параллельными задачами ввода-вывода, или вы просто не хотите терять процессорное время и другие ресурсы на восстановление состояний.

Kee 30.01.21 в 17:06

0

Хотя корутины и асинхронный ввод-вывод, это основные возможности, которых большинство людей ожидает от Swoole PHP, экономия затрат при использовании сервера даже с частично сохраняемым состоянием влечёт за собой немедленное сокращение затрат для самого бизнеса.

Kee 30.01.21 в 17:12

0

Задумываемся ли мы над этими вопросами, анализируя свои системы?

Kee 30.01.21 в 17:12

0

Не тратим ли мы ресурсы впустую, игнорируя возможность повторного использования однажды полученных переменных?

Kee 30.01.21 в 17:14

0

Не выбираем ли одну и ту же информацию из базы данных при каждом запросе?

Kee 30.01.21 в 17:15

0

Не получаем ли избыточные данные, не нужные для текущего запроса?

Kee 30.01.21 в 17:17

0

Возможно ли локально кешировать данные, полученные удалённо?

Kee 30.01.21 в 17:17

0

Можем ли мы использовать асинхронный I/O вместо блокирующего I/O, чтобы не терять запущенные процессы?

Kee 30.01.21 в 17:19

0

Можем ли мы отложить немедленное исполнение тяжёлой задачи, и, поместив её в очередь, выполнять независимо?

И так далее.

Kee 30.01.21 в 17:22

0

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

Kee 30.01.21 в 17:34

0

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

Kee 30.01.21 в 22:23

0

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

Kee 30.01.21 в 22:29

0

В последующих главах мы более подробно остановимся на этой теме.

Kee 30.01.21 в 22:31

0
Минутку...