Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How Swoole Blows Up Your Mind
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Albert Chen
December 20, 2022
1
300
How Swoole Blows Up Your Mind
PHPCon Okinawa 2019
Albert Chen
December 20, 2022
Tweet
Share
More Decks by Albert Chen
See All by Albert Chen
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
270
Beyond Laravel Octane - Hyperf for Laravel Artisans
albertcht
1
800
Source Code Protection Techniques in PHP
albertcht
0
1.2k
High Concurrency Web Architecutre and Laravel Performance Tuning
albertcht
2
370
Build Your High Concurrency App With PHP and Swoole
albertcht
2
670
From Generator to Fiber the Road to Coroutine in PHP
albertcht
1
670
The System Architecture of Real-time Report in Laravel
albertcht
1
600
The Integration of Laravel with Swoole
albertcht
0
810
Deep Dive into Laravel Octane
albertcht
3
1k
Featured
See All Featured
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
230
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
67
37k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
210
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
140
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
540
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
240
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.7k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Transcript
How Swoole Blows Up Your Mind? @PHPCon Okinawa 2019 By
Albert Chen
About Me • Albert Chen • Software Architect • M17
HandsUp • Open Source Maintainer
What is Swoole?
None
What is Swoole? • A C extension for PHP •
An asynchronous network engine for PHP • Features: • Event-driven non-blocking I/O • HTTP / HTTP2 / Websocket / TCP / UDP • Coroutine (CSP Model) • High performance for high concurrency
Why PHP Performs Poorly in High Concurrency?
Lifecycle in PHP
Lifecycle in PHP PHP Files Tokenizing Semantic Parsing AST Generate
Bytecode Execute Bytecode Output Load Bytecode From Memory Check Bytecode Cache
Blocking I/O in PHP Request Request Request Request PHP FPM
FPM Pool FPM Pool Worker Worker Worker Worker Blocking I/O
Eventloop in NodeJS
There’s no Eventloop in Traditional PHP
Let’s See What Changes in Swoole?
Structure in Swoole Server
Structure in Swoole Server • Code Is Persistent in Memory
• Swoole Takes Lifecycle Over PHP • Reduce Initialization Steps • Reduce Response Latency • Event-driven Non-blocking I/O for Requests
Benchmark Comparison of Go with Swoole
Server Benchmark in Go
Server Benchmark in Go
Server Benchmark in Swoole
Server Benchmark in Swoole
This Doesn’t Mean PHP with Swoole is Faster Than Go
(Of Course Not)
Coroutine in Swoole
Coroutine in Swoole • Blocking I/Os Are Scheduled By Coroutine
Automatically.
Coroutine in Swoole • Blocking I/Os Are Scheduled By Coroutine
Automatically.
Coroutine in Swoole • CSP Model
Does This Mean Every Blocking I/O Doesn’t Block Anymore?
Coroutine in Swoole • How about This?
Coroutine in Swoole • How about This?
Runtime Hooks Transform Blocking I/Os into Coroutines with Magic!
Use Case In HandsUp
Use Case Facebook Webhooks Message Load Balancer Server Server Server
Queue PubNub Service Analysis Service Swoole Service PubSub Many to Many Queue Workers High Concurrent Requests
Use Case • Replace Guzzle Handler with Swoole Client
Q&A