Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
Swoole in 5 Minutes [en]
Christoph Lühr
February 06, 2018
Technology
1
11k
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
The how and why of getting Freelancers
chluehr
0
35
Content & Master Data Management with Pimcore
chluehr
1
230
Master Data Management with Pimcore
chluehr
0
87
PIM & Master Data Management with Pimcore 5 [en]
chluehr
2
240
Digital Transformation & Master Data Management with Pimcore 5
chluehr
0
170
LXD System Containers [en]
chluehr
0
150
Developing with Pimcore
chluehr
0
180
Zero to Hero [en]
chluehr
2
150
Performante Web-Apps [de]
chluehr
1
140
Other Decks in Technology
See All in Technology
MoT TechTalk #12 タクシーアプリ『GO』大規模トラフィックを捌く分析データ基盤の全容に迫る!
mot_techtalk
0
350
LINEのB2Bプラットフォームにおけるトラブルシューティング2選
line_developers
PRO
3
280
インフラのCI/CDはGitHub Actionsに任せた
mihyon
0
100
UWBを使ってみた
norioikedo
0
400
The role of the data organization as a business progresses
line_developers
PRO
3
840
Design for Humans: How to make better modernization decisions
indualagarsamy
2
110
1人目QA奮闘記/QA Engineer's Struggle
mii3king
2
1k
Internet Explorer は Microsoft Edge へ - IE の歩みとこれから -
yuhara0928
1
3.5k
NFT(非代替性トークン)、DeFi(分散金融) の虚像と実像 / NFT (Non-Fungible Token), DeFi (Decentralized Finance): False and Real Images
ks91
PRO
0
260
機械学習システムアーキテクチャ入門 #1
asei
3
1.2k
ノーメンテナンス運用実現のためのノウハウ/ColoplTech-05-02
colopl
0
160
2022年度新卒技術研修「エンジニアマインド」講義
excitejp
PRO
0
370
Featured
See All Featured
Web development in the modern age
philhawksworth
197
9.3k
Building Adaptive Systems
keathley
25
1.1k
Docker and Python
trallard
27
1.6k
A better future with KSS
kneath
225
15k
Why Our Code Smells
bkeepers
PRO
324
55k
A Tale of Four Properties
chriscoyier
149
21k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
7
1.1k
Facilitating Awesome Meetings
lara
29
4k
A Philosophy of Restraint
colly
192
15k
Ruby is Unlike a Banana
tanoku
91
9.2k
Code Reviewing Like a Champion
maltzj
506
37k
Optimizing for Happiness
mojombo
365
63k
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 luehr@r-pentomino.de christoph.luehr@basilicom.de @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/