• ОЀОРМИВЬ ΠŸΠžΠ”ΠŸΠ˜Π‘ΠšΠ£ ΠžΠ’Π—Π«Π’Π«

πŸ’» ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ [Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ЕлисССв] [deworker.pro] Бпособы ускорСния PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (2024)

Gatsby

ВЕЧНЫЙ

Gatsby

ВЕЧНЫЙ
РСгистрация
10 ΠžΠΊΡ‚ 2018
БообщСния
41,604
Π›Π°ΠΉΠΊΠΈ
177,176
[Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ЕлисССв] [deworker.pro] Бпособы ускорСния PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (2024)
444.png

Бпособы ускорСния PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ [deworker.pro] [Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ЕлисССв]

На ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ стримС ΠΌΡ‹ с Π²Π°ΠΌΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Π»ΠΈΡΡŒ с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠ΄Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ микросСрвисы.

Пока Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΈ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ скринкасты ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘ΠΌ наш ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠΉ стрим Π½Π° ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ смСТныС Ρ‚Π΅ΠΌΡ‹.
Π’ этот Ρ€Π°Π· ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ способы ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ запуска ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ PHP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ:
Рассмотрим ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ ΡƒΡΠΊΠΎΡ€Π΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π΅Π±-прилоТСния. ΠžΡ‚ простого Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ OpCache, ΠΊΠ΅ΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ сСрвисов Π΄ΠΎ Preload с JIT ΠΈ RoadRunner, асинхронности, использования Fiber-ΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… нюансов Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…. ΠŸΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΡƒΠ΅ΠΌΡΡ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ… с бэнчмарками.
ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΏΡ€ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, удобство программирования stateless-сСрвисов ΠΈ ΠΏΡ€ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ контСкста запроса.

UPD: ΠŸΡ€ΠΎΠ²Π΅Π»ΠΈ ΠΏΠ΅Ρ€Π²ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ, Π³Π΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ запуска ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… классичСских ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° Slim ΠΈ Symfony.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅:

  • 00:00:00 - ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅
  • 00:00:53 - Вопросы Π² Ρ‡Π°Ρ‚Π΅
  • 00:06:18 - Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ
  • 00:31:07 - Π”Π΅ΠΌΠΎ-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° SlimPHP
  • 00:41:36 - БСрвис Benchmark для Π·Π°ΠΌΠ΅Ρ€ΠΎΠ²
  • 00:46:30 - Π—Π°ΠΌΠ΅Ρ€Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±Π΅Π· ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ
  • 00:49:28 - Π‘Π»ΡƒΡ‡Π°ΠΉ ΠΈΠ· ΠΆΠΈΠ·Π½ΠΈ
  • 00:52:26 - ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ² с OpCache
  • 01:01:14 - ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ с JIT
  • 01:07:22 - Π ΡƒΡ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π΅Π² OpCache Ρ‡Π΅Ρ€Π΅Π· Preload
  • 01:24:34 - Π“Π΄Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ JIT
  • 01:30:23 - ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ прилоТСния
  • 01:53:57 - Π”ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡƒΡ‰ΠΈΠ΅ прилоТСния
  • 02:03:38 - ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ с PHP-FPM Π½Π° RoadRunner
  • 03:07:48 - Π”Π΅ΠΌΠΎ-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Symfony
  • 03:19:24 - OpCache ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ Preload
  • 03:23:22 - ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ RoadRunner ΠΊ Symfony
  • 03:33:50 - Для Laravel ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ²
  • 03:37:43 - ΠžΠ±Π·ΠΎΡ€ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΈ Π½ΡŽΠ°Π½ΡΡ‹
  • 03:43:50 - ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° вопросы
И Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части написали свой асинхронный Loop с Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠΌ Π½Π° PHP ΠΊΠ°ΠΊ Π½Π° JavaScript ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΈ способы написания Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° асинхронных Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ…:
  • 00:00:00 - ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅
  • 00:01:29 - ΠŸΡ€ΠΎ ΠΌΠΈΡ‚Π°ΠΏ с Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠΌ ΠΏΡ€ΠΎ Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΠΎΡΡ‚ΡŒ
  • 00:10:58 - Бинхронная ΠΏΡ€ΠΈΡ€ΠΎΠ΄Π° Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² RoadRunner
  • 00:19:36 - НСудобства ΠΎΡ‚ Doctrine с EntityManager
  • 00:26:30 - ΠŸΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ EntityManager ΠΏΡ€ΠΈ ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ…
  • 00:40:18 - Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ 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
  • 04:40:09 - ИспользованиС Connection Pool для Π‘Π”
  • 04:47:42 - Установка pcntl для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с сигналами
  • 04:49:27 - Код прилоТСния ΠΈ тСст ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ
  • 05:14:59 - Асинхронная инфраструктура ReactPHP
  • 05:19:25 - ΠžΡ‚Π»ΠΎΠ² ошибок Π² Promise ΠΈ await
  • 05:23:33 - НаписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° ReactPHP
  • 05:49:52 - Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Swoole ΠΈ OpenSwoole
  • 06:00:05 - НаписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° OpenSwoole
  • 06:26:45 - ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° состояния ΠΈ Statefull-сСрвисов
  • 06:40:04 - Stateless-сСрвисы ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² запроса
  • 06:50:30 - Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° для описания контСкста запроса
  • 07:05:58 - ИспользованиС ORM ΠΏΡ€ΠΈ ΠΊΠΎΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ
  • 07:14:33 - ΠžΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° вопросы


ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅:
Π‘ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ содСрТимоС доступно для зарСгистрированных ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ!


Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ:
 
  • МнС нравится
Π Π΅Π°ΠΊΡ†ΠΈΠΈ: Yukhanov
Π’ΠΠ–ΠΠž:

НС оставляйтС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ с ΠΏΡ€ΠΎΡΡŒΠ±Π°ΠΌΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ / Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ссылку Π½Π° скачиваниС ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Ρ‚ΠΈΠΏΠ° Β«404Β», «ошибка».

Для восстановлСния ссылки Π΅ΡΡ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«Π–Π°Π»ΠΎΠ±Π° / Π’ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ссылку» Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ постС Ρ‚Π΅ΠΌΡ‹.

ΠŸΡ€ΠΈ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ Π’Π°Ρˆ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½, Π° Π’Π°Ρˆ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π½Π° сутки. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° нашСго сайта.
Автор ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹ Π€ΠΎΡ€ΡƒΠΌ ΠžΡ‚Π²Π΅Ρ‚ΠΎΠ² Π”Π°Ρ‚Π°
Gatsby πŸ’» ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ [Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ЕлисССв] [deworker.pro] Π‘Π°Π·Π° Π·Π½Π°Π½ΠΈΠΉ ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… программистов (обновлСнная 2024) АдминистрированиС ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 0
Gatsby πŸ’» ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ [Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ЕлисССв] [deworker.pro] Π‘ΠΎΠ»ΡŒΡˆΠΎΠΉ стрим ΠΏΡ€ΠΎ SOLID ΠΈ GRASP (2024) АдминистрированиС ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 0
Gatsby πŸ’» ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ [ЕлисССв Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ] [deworker.pro] ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ раздСлСния Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ микросСрвисы (2023) АдминистрированиС ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 0
Gatsby πŸ’» ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ [Deworker] Π”ΠΌΠΈΡ‚Ρ€ΠΈΠΉ ЕлисССв - Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°ΡƒΠΊΡ†ΠΈΠΎΠ½Π° Π½Π° SlimPHP ΠΈ ReactJS (2020) АдминистрированиС ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ 0
Π‘Π²Π΅Ρ€Ρ…Ρƒ Π‘Π½ΠΈΠ·Ρƒ