Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
How Swoole Blows Up Your Mind
Search
Albert Chen
December 20, 2022
340
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How Swoole Blows Up Your Mind
PHPCon Okinawa 2019
Albert Chen
December 20, 2022
More Decks by Albert Chen
See All by Albert Chen
Supercharge Laravel Queues with Hypervel
albertcht
0
89
Introduction to Swoole's AOT Compiler
albertcht
0
130
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
2
350
Beyond Laravel Octane - Hyperf for Laravel Artisans
albertcht
1
910
Source Code Protection Techniques in PHP
albertcht
0
1.4k
High Concurrency Web Architecutre and Laravel Performance Tuning
albertcht
2
420
Build Your High Concurrency App With PHP and Swoole
albertcht
2
740
From Generator to Fiber the Road to Coroutine in PHP
albertcht
1
720
The System Architecture of Real-time Report in Laravel
albertcht
1
690
Featured
See All Featured
The Curse of the Amulet
leimatthew05
3
15k
エンジニアに許された特別な時間の終わり
watany
109
250k
The Invisible Side of Design
smashingmag
301
52k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
330
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
540
Building Adaptive Systems
keathley
44
3.2k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Chasing Engaging Ingredients in Design
codingconduct
0
340
Mind Mapping
helmedeiros
1
370
Skip the Path - Find Your Career Trail
mkilby
1
240
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
490
Code Review Best Practice
trishagee
74
20k
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