Skip to content

Instantly share code, notes, and snippets.

@nkt
Created October 29, 2015 13:46
Show Gist options
  • Save nkt/5dd8e391664937ca0e06 to your computer and use it in GitHub Desktop.
Save nkt/5dd8e391664937ca0e06 to your computer and use it in GitHub Desktop.
var http = require('http');
var redis = require('redis');
var client = redis.createClient();
var server = http.createServer(function (req, res) {
client.get('foo', function(err, foo) {
res.writeHead(200, {
'Content-Type': 'application/json'
});
res.end(JSON.stringify({
foo: foo
}));
});
});
server.listen(1337, function() {
console.log("Server running at http://127.0.0.1:1337");
});
<?php
require 'vendor/autoload.php';
$loop = new React\EventLoop\LibEventLoop();
$redis = new Predis\Async\Client('tcp://127.0.0.1:6379', $loop);
$redis->connect(function ($client) use($loop) {
$socket = new React\Socket\Server($loop);
$http = new React\Http\Server($socket, $loop);
$http->on('request', function ($request, $response) use($client) {
$client->get('foo', function($foo) use($request, $response) {
$response->writeHead(200, array('Content-Type' => 'application/json'));
$response->end(json_encode([
'foo' => $foo
]));
});
});
echo "Server running at http://127.0.0.1:1337\n";
$socket->listen(1337);
});
$loop->run();

php:

Running 20s test @ http://127.0.0.1:1337/
  4 threads and 500 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    10.57ms   11.71ms 111.94ms   87.28%
    Req/Sec   485.52    342.67     1.61k    64.71%
  7108 requests in 20.10s, 0.87MB read
  Socket errors: connect 251, read 7374, write 16, timeout 0
Requests/sec:    353.60
Transfer/sec:     44.54KB

node:

Running 20s test @ http://127.0.0.1:1337/
  4 threads and 500 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency    22.71ms    3.46ms 101.35ms   90.57%
    Req/Sec     3.67k     2.62k    6.31k    66.00%
  219149 requests in 20.08s, 34.07MB read
  Socket errors: connect 251, read 46, write 33, timeout 0
Requests/sec:  10912.92
Transfer/sec:      1.70MB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment