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
Swoole in 5 Minutes [en]
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Christoph Lühr
February 06, 2018
Technology
12k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swoole in 5 Minutes [en]
Blazingly-Fast, Event-Driven, Asynchronous PHP. Berlin PHP Usergroup 02/06/2018
Christoph Lühr
February 06, 2018
More Decks by Christoph Lühr
See All by Christoph Lühr
Vektor-Suche & LLMs
chluehr
0
160
Search, Embeddings & Vector-DBs
chluehr
0
200
Reality Check: Automated Content Production at Enterprise Scale with Pimcore
chluehr
0
120
The how and why of getting Freelancers
chluehr
0
100
Content & Master Data Management with Pimcore
chluehr
1
780
Master Data Management with Pimcore
chluehr
0
250
PIM & Master Data Management with Pimcore 5 [en]
chluehr
2
350
Digital Transformation & Master Data Management with Pimcore 5
chluehr
0
280
LXD System Containers [en]
chluehr
0
410
Other Decks in Technology
See All in Technology
SREのためのFinOps入門
muziyoshiz
2
940
バックオフィスに染み出すTypeScript ── clasp で安全に仕組みを作る
nealle
1
200
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
660
evcc & Home Assistant
naltatis
0
480
顧客合意を取りながら進めるAWSコスト削減の実践
optim
0
150
FinOpsを導入してマルチプロダクトのコスト最適化を実現する
kworkdev
PRO
0
140
Copilot Coworkで「みのるん式」やってみた
minorun365
PRO
2
1.7k
Cloudflareの向き先
chimame
1
160
AWS Quick 入門 | 目指せ Quick マスター 01
inariku
PRO
2
270
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
180
The Author Pays
hiccupps
0
150
IBC 2026 動画技術関連レポート / IBC 2026 Report
cyberagentdevelopers
PRO
2
450
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
8.2k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.4k
Evolving SEO for Evolving Search Engines
ryanjones
0
360
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
880
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
660
Building the Perfect Custom Keyboard
takai
2
950
Raft: Consensus for Rubyists
vanstee
143
7.9k
Into the Great Unknown - MozCon
thekraken
41
2.8k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1.3k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
560
Transcript
Christoph Lühr @chluehr / bephpug 2018 "Fast, faster, Swoole" Teaser:
Swoole in 5 Minutes
None
SIN CE 2000
None
"Blazingly-Fast, Event-Driven, Asynchronous PHP."
None
$ pecl install swoole
$ brew install swoole
<?php $server = new \Swoole\Http\Server('0.0.0.0', 9000); $server->on('Request', function ($request, $response)
{ $response->end('OK'); }); $server->start();
<?php $loop = React\EventLoop\Factory::create(); $server = stream_socket_server('tcp://0.0.0.0:9000'); stream_set_blocking($server, 0); $loop->addReadStream($server,
function ($server) use ($loop) { $conn = stream_socket_accept($server); $data = "HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\nHi\n"; $loop->addWriteStream($conn, function ($conn) use (&$data, $loop) { $written = fwrite($conn, $data); if ($written === strlen($data)) { fclose($conn); $loop->removeStream($conn); } else { $data = substr($data, $written); } }); }); $loop->run();
PHP-PM
None
Sugar and Cream? (PHP is not enough ...)
Async IO
File I/O (and some tagline to go along)
TCP Clients MySQL / Redis / HTTP / WebSocket
"Reality Distortion" BENCHMARKS
300.000 Req/Sec
wrk -t4 -c400 -d10s http://127.0.0.1:1337/ Running 10s test @ http://127.0.0.1:1337/
4 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 1.46ms 1.42ms 27.96ms 85.66% Req/Sec 75.29k 36.43k 183.55k 72.75% 3007806 requests in 10.06s, 605.25MB read Requests/sec: 299103.32 Transfer/sec: 60.19MB
wrk -t16 -c400 -d30s http://localhost:9000/ Running 30s test @ http://localhost:9000/
16 threads and 400 connections Thread Stats Avg Stdev Max +/- Stdev Latency 6.97ms 7.07ms 226.95ms 93.28% Req/Sec 4.00k 0.96k 15.36k 76.15% 1909179 requests in 30.09s, 282.21MB read Requests/sec: 63442.77 Transfer/sec: 9.38MB
Demo
Real World(tm) References?
None
None
To good to be true...? DRAWBACKS
中文
None
Thanks! Questions? Christoph Lühr
[email protected]
[email protected]
@chluehr Slides license Attribution-NonCommercial-ShareAlike
3.0 http://creativecommons.org/licenses/by-nc-sa/3.0/
• Swoole 2.0 https://www.swoole.co.uk/