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
Swoole in 5 Minutes [en]
Search
Christoph Lühr
February 06, 2018
Technology
1
12k
Swoole in 5 Minutes [en]
Blazingly-Fast, Event-Driven, Asynchronous PHP. Berlin PHP Usergroup 02/06/2018
Christoph Lühr
February 06, 2018
Tweet
Share
More Decks by Christoph Lühr
See All by Christoph Lühr
Vektor-Suche & LLMs
chluehr
0
22
Search, Embeddings & Vector-DBs
chluehr
0
53
Reality Check: Automated Content Production at Enterprise Scale with Pimcore
chluehr
0
11
The how and why of getting Freelancers
chluehr
0
48
Content & Master Data Management with Pimcore
chluehr
1
370
Master Data Management with Pimcore
chluehr
0
150
PIM & Master Data Management with Pimcore 5 [en]
chluehr
2
270
Digital Transformation & Master Data Management with Pimcore 5
chluehr
0
210
LXD System Containers [en]
chluehr
0
220
Other Decks in Technology
See All in Technology
開発パフォーマンスを最大化するための開発体制
ham0215
7
1.1k
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
2
320
Microsoft for Startups Founders Hub_20240429 update
daikikanemitsu
1
2.4k
【SORACOM UG 東海】あらゆるモノがつながる社会へ、IoT と SORACOM
soracom
PRO
1
140
Amplify 🩷 Bedrock 〜生成AI入門〜
minorun365
PRO
8
680
20分で完全に理解するGrafanaダッシュボード
hamadakoji
5
890
Next.js に疲れた私は Vue3 に癒やされた
akagire
0
140
TechFeed Experts Night#27 〜 フロントエンドフレームワーク最前線 (Svelte)
baseballyama
2
590
web-application-security
matsuihidetoshi
1
190
家族アルバム みてねにおけるGrafana活用術 / Grafana Meetup Japan Vol.1 LT
isaoshimizu
1
1k
止まらないLinuxシステムを構築する_高信頼性クラスタ入門
koedoyoshida
2
410
Cypress or Playwright?
rainerhahnekamp
0
170
Featured
See All Featured
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Git: the NoSQL Database
bkeepers
PRO
423
63k
5 minutes of I Can Smell Your CMS
philhawksworth
199
19k
YesSQL, Process and Tooling at Scale
rocio
165
13k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Navigating Team Friction
lara
179
13k
Building Adaptive Systems
keathley
32
1.9k
In The Pink: A Labor of Love
frogandcode
138
21k
Producing Creativity
orderedlist
PRO
338
39k
Making Projects Easy
brettharned
109
5.5k
Web Components: a chance to create the future
zenorocha
306
41k
What's new in Ruby 2.0
geeforr
337
31k
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/