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

Moderator
29 Мар 2020
268,895
1,042,805
113
#1
1728654412060-png.77837


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



На прошлом стриме мы рассмотрели разделение кода на модули и микросервисы. В этот раз мы обсудим способы оптимизации запуска и работы PHP-приложений. Мы рассмотрим различные подходы к ускорению работы веб-приложений, такие как включение OpCache, кеширование конфигурации, ленивая инициализация сервисов, Preload с JIT, асинхронность, использование Fiber-ов и другие нюансы в различных фреймворках. Также мы потренируемся на проектах с бенчмарками.

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

Первая часть стрима была посвящена оптимизации запуска существующих классических приложений на Slim и Symfony.

Содержание стрима:

  1. Приветствие (00:00:00).
  2. Вопросы в чате (00:00:53).
  3. Как работает проект и что можно ускорить (00:06:18).
  4. Демонстрация приложения на SlimPHP (00:31:07).
  5. Сервис Benchmark для замеров (00:41:36).
  6. Замеры производительности без оптимизаций (00:46:30).
  7. Случай из жизни (00:49:28).
  8. Кэширование опкодов с OpCache (00:52:26).
  9. Компиляция по требованию с JIT (01:01:14).
  10. Ручной прогрев OpCache через Preload (01:07:22).
  11. Где может пригодиться JIT (01:24:34).
  12. Кэширование конфигурации приложения (01:30:23).
  13. Долгоживущие приложения (01:53:57).
  14. Переход с PHP-FPM на RoadRunner (02:03:38).
  15. Демонстрация приложения на Symfony (03:07:48).
  16. OpCache и готовый Preload (03:19:24).
  17. Подключение RoadRunner к Symfony (03:23:22).
  18. Для Laravel и других фреймворков (03:33:50).
  19. Обзор результата и нюансы (03:37:43).
  20. Ответы на вопросы (03:43:50).
Во второй части стрима мы напишем свой асинхронный Loop с таймером на PHP как на JavaScript и покажем способы написания новых приложений на асинхронных фреймворках:

  1. Приветствие (00:00:00).
  2. Про митап с докладом об асинхронности (00:01:29).
  3. Синхронная природа воркеров RoadRunner (00:10:58).
  4. Неудобства от Doctrine с EntityManager (00:19:36).
  5. Пересоздание EntityManager при ошибках (00:26:30).
  6. Сравнение PHP и Java по типизации с Go и TypeScript (01:09:06).
  7. Как устроен waitRequest в RoadRunner (01:23:19).
  8. Пишем Loop для отложенного выполнения кода (01:47:04).
  9. Пишем setTimeout на PHP (02:10:35).
  10. Блокирующий и неблокирующий код (02:15:58).
  11. Неблокирующая загрузка fetch по HTTP (02:34:17).
  12. EventLoop в JavaScript (02:46:30).
  13. Конкурентное и асинхронное выполнение (02:52:56).
  14. Объект Promise и ожидание результата через await (03:11:03).
  15. Ожидание группы через Promise::all (03:13:32).
  16. Идея генераторов с yield (03:20:27).
  17. Концепция зелёных потоков и Fiber (04:00:10).
  18. Практическая польза неблокирующего режима (04:10:56).
  19. Асинхронный сервер AmPHP (04:24:35).
  20. OpCache для консольных приложений (04:25:20).
  21. Скелет демонстрационного приложения (04:29:06).
  22. Работа с системными сигналами в Docker (04:35:09).
  23. Написание проекта на AmPHP HTTP Server
Подробнее:
Для просмотра содержимого вам необходимо авторизоваться

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


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