I'd like to introduce this Swoole PHP extension:
Event-driven asynchronous & concurrent & coroutine networking engine with high performance for PHP.http://www.swoole.com/
This is a game-changing extension that would change how PHP works.
According to the bench mark here, it's 12 times faster than Node.js.
Try swoole extension.
- Ubuntu 16.04 LTS
- Intel® Core™ i5-4590 CPU @ 3.30GHz × 4
- 16G Memory
$http = new swoole_http_server("127.0.0.1", 1337, SWOOLE_BASE);
$http->set([
'worker_num' => 4,
]);
$data = [
'code' => 'ok',
'error' => false,
'payload' => 'Hello World'
];
$http->on('request', function ($request, swoole_http_response $response) use($data) {
$response->header('Content-Type', 'application/json');
$response->end(json_encode($data));
});
$http->start();
Node.js v4.2.6
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 16.08ms 2.70ms 237.82ms 90.94%
Req/Sec 6.05k 510.34 7.10k 91.00%
240668 requests in 10.02s, 46.36MB read
Requests/sec: 24026.00
Transfer/sec: 4.63MB
PHP7.1+Swoole-v1.9.5
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