Описание [Дмитрий Елисеев] [deworker.pro] Способы ускорения PHP-приложений (2024):
На прошлом стриме мы рассмотрели разделение кода на модули и микросервисы. В этот раз мы обсудим способы оптимизации запуска и работы PHP-приложений. Мы рассмотрим различные подходы к ускорению работы веб-приложений, такие как включение OpCache, кеширование конфигурации, ленивая инициализация сервисов, Preload с JIT, асинхронность, использование Fiber-ов и другие нюансы в различных фреймворках. Также мы потренируемся на проектах с бенчмарками.
Во время стрима мы также поговорим о возможных проблемах, удобстве программирования stateless-сервисов и передаче контекста запроса.
Первая часть стрима была посвящена оптимизации запуска существующих классических приложений на Slim и Symfony.
Содержание стрима:
- Приветствие (00:00:00).
- Вопросы в чате (00:00:53).
- Как работает проект и что можно ускорить (00:06:18).
- Демонстрация приложения на SlimPHP (00:31:07).
- Сервис Benchmark для замеров (00:41:36).
- Замеры производительности без оптимизаций (00:46:30).
- Случай из жизни (00:49:28).
- Кэширование опкодов с OpCache (00:52:26).
- Компиляция по требованию с JIT (01:01:14).
- Ручной прогрев OpCache через Preload (01:07:22).
- Где может пригодиться JIT (01:24:34).
- Кэширование конфигурации приложения (01:30:23).
- Долгоживущие приложения (01:53:57).
- Переход с PHP-FPM на RoadRunner (02:03:38).
- Демонстрация приложения на Symfony (03:07:48).
- OpCache и готовый Preload (03:19:24).
- Подключение RoadRunner к Symfony (03:23:22).
- Для Laravel и других фреймворков (03:33:50).
- Обзор результата и нюансы (03:37:43).
- Ответы на вопросы (03:43:50).
- Приветствие (00:00:00).
- Про митап с докладом об асинхронности (00:01:29).
- Синхронная природа воркеров RoadRunner (00:10:58).
- Неудобства от Doctrine с EntityManager (00:19:36).
- Пересоздание EntityManager при ошибках (00:26:30).
- Сравнение PHP и Java по типизации с Go и TypeScript (01:09:06).
- Как устроен waitRequest в RoadRunner (01:23:19).
- Пишем Loop для отложенного выполнения кода (01:47:04).
- Пишем setTimeout на PHP (02:10:35).
- Блокирующий и неблокирующий код (02:15:58).
- Неблокирующая загрузка fetch по HTTP (02:34:17).
- EventLoop в JavaScript (02:46:30).
- Конкурентное и асинхронное выполнение (02:52:56).
- Объект Promise и ожидание результата через await (03:11:03).
- Ожидание группы через Promise::all (03:13:32).
- Идея генераторов с yield (03:20:27).
- Концепция зелёных потоков и Fiber (04:00:10).
- Практическая польза неблокирующего режима (04:10:56).
- Асинхронный сервер AmPHP (04:24:35).
- OpCache для консольных приложений (04:25:20).
- Скелет демонстрационного приложения (04:29:06).
- Работа с системными сигналами в Docker (04:35:09).
- Написание проекта на AmPHP HTTP Server
Для просмотра содержимого вам необходимо авторизоваться
Скачать курс [Дмитрий Елисеев] [deworker.pro] Способы ускорения PHP-приложений (2024):
Для просмотра содержимого вам необходимо авторизоваться
Последнее редактирование модератором: