- 27 Июл 2023
- 128,708
- 2,462
- #1
Голосов: 0
Описание [Дмитрий Елисеев] [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);
- во второй части трансляции мы напишем свой асинхронный Loop с таймером на PHP как на JavaScript и покажем способы создания новых приложений на асинхронных фреймворках:
- приветствие (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).
Для просмотра содержимого вам необходимо авторизоваться
Скачать курс [Дмитрий Елисеев] [deworker.pro] Способы ускорения PHP-приложений (2024):
Для просмотра содержимого вам необходимо авторизоваться
Последнее редактирование модератором: