Skip to content

Instantly share code, notes, and snippets.

@courtneycouch
Created May 10, 2012 13:28
Show Gist options
  • Save courtneycouch/2652991 to your computer and use it in GitHub Desktop.
Save courtneycouch/2652991 to your computer and use it in GitHub Desktop.
vertx server test
ar http = require('http');
var fs = require('fs');
var util = require('util');
var fileCache;
var sendFile = function(conn, file) {
conn.writeHead(200, {"Content-Type": "text/html", "Content-Length": file.length});
conn.write(file);
conn.end();
}
http.createServer(function (req, res) {
if (fileCache == undefined) {
fs.readFile("foo.html", function(err, file) {
fileCache = file;
sendFile(res, fileCache);
});
} else {
sendFile(res, fileCache);
}
}).listen(8080, 'localhost');
load('vertx.js')
var fileCache;
var sendFile = function(req, file) {
req.response.headers["Content-Length"] = file.length()
req.response.headers["Content-Type"] = "text/html"
req.response.end(file)
}
vertx.createHttpServer().requestHandler(function(req) {
if (fileCache == undefined) {
vertx.fileSystem.readFile("httpperf/foo.html" function(err, file) {
fileCache = file;
sendFile(req, fileCache);
});
} else {
sendFile(req, fileCache);
}
});
}).listen(8080, 'localhost');
@isaacs
Copy link

isaacs commented May 11, 2012

@courtneycouch You can save a syscall in the node server if you do res.end(file) rather than res.write(file);res.end()

@courtneycouch
Copy link
Author

Yea I didn't really spend any time on this.. just a few minutes changing the IO silliness (oh and the other benchmark showing node on multiple cores). I really should have tried mmap as well but really I should be spending my time doing actual stuff instead of making benchmarks hah. I think I made my point though that vertx isn't simply 5x faster than node as is being propagated.

Copy link

ghost commented May 12, 2012

i found an blog post on my readitlater list about couchdb but this blog post is about benchmarking.
http://jan.prima.de/~jan/plok/archives/175-Benchmarks-You-are-Doing-it-Wrong.html

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