Программирование [Дмитрий Елисеев] [deworker.pro] Способы ускорения PHP-приложений (2024)

Moderator
Команда форума
27 Июл 2023
128,708
2,462
1728916094847.png


Описание [Дмитрий Елисеев] [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):


Для просмотра содержимого вам необходимо авторизоваться
 
Последнее редактирование модератором: