Skip to content

Instantly share code, notes, and snippets.

@grosser
Created October 12, 2010 13:52
Show Gist options
  • Save grosser/622191 to your computer and use it in GitHub Desktop.
Save grosser/622191 to your computer and use it in GitHub Desktop.

Sinatra

ruby 1.9.2 + async_sinatra + thin thin start

ab -n 10000 -c 100 http://localhost:3000/
-> 49ms / request

Node

node server.js

ab -n 10000 -c 100 http://localhost:3000/
-> 20ms / request
#!/usr/bin/env
require 'sinatra/async'
class AsyncTest < Sinatra::Base
register Sinatra::Async
aget '/' do
body "hello async"
end
end
run AsyncTest.new
// Load the http module to create an http server.
var http = require('http');
// Configure our HTTP server to respond with Hello World to all requests.
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
// Listen on port 8000, IP defaults to 127.0.0.1
server.listen(3000);
// Put a friendly message on the terminal
console.log("Server running at http://127.0.0.1:8000/");
@aspes
Copy link

aspes commented Aug 18, 2011

I don't think it's fair comparison because Sinatra is having more features.
So, put something on to node server.js(such as express so that it can match sinatra)
and test again.

@kgriffs
Copy link

kgriffs commented Sep 2, 2011

Or you could go the other way and benchmark a straight Rack "Hello World" application.

@grosser
Copy link
Author

grosser commented Sep 2, 2011

feel free to fork :)

@hrdwdmrbl
Copy link

With ruby 1.9.3 I got about 98ms with ruby and 21ms with node 0.6.18

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment