mirror of https://github.com/lukechilds/node.git
Browse Source
To use the benchmarks: node benchmarks/run.js or: make benchmark The numbers reported are the elapsed milliseconds the script took to complete. Currently only benching HTTP code and timers.v0.7.4-release
Ryan
16 years ago
5 changed files with 96 additions and 1 deletions
@ -0,0 +1,16 @@ |
|||
function next (i) { |
|||
if (i <= 0) return; |
|||
|
|||
var process = node.createProcess("echo hello"); |
|||
|
|||
process.addListener("output", function (chunk) { |
|||
if (chunk) print(chunk); |
|||
}); |
|||
|
|||
process.addListener("exit", function (code) { |
|||
if (code != 0) node.exit(-1); |
|||
next(i - 1); |
|||
}); |
|||
} |
|||
|
|||
next(500); |
@ -0,0 +1,29 @@ |
|||
var benchmarks = [ "static_http_server.js" |
|||
, "timers.js" |
|||
, "process_loop.js" |
|||
]; |
|||
|
|||
var benchmark_dir = node.path.dirname(__filename); |
|||
|
|||
function exec (script, callback) { |
|||
var command = ARGV[0] + " " + node.path.join(benchmark_dir, script); |
|||
var start = new Date(); |
|||
var process = node.createProcess(command); |
|||
process.addListener("exit", function (code) { |
|||
var elapsed = new Date() - start; |
|||
callback(elapsed, code); |
|||
}); |
|||
} |
|||
|
|||
function runNext (i) { |
|||
if (i >= benchmarks.length) return; |
|||
print(benchmarks[i] + ": "); |
|||
exec(benchmarks[i], function (elapsed, code) { |
|||
if (code != 0) { |
|||
puts("ERROR "); |
|||
} |
|||
puts(elapsed); |
|||
runNext(i+1); |
|||
}); |
|||
}; |
|||
runNext(0); |
@ -0,0 +1,39 @@ |
|||
var concurrency = 30; |
|||
var nrequests = 700; |
|||
var port = 8000; |
|||
var completed_requests = 0; |
|||
var bytes = 1024*5; |
|||
|
|||
var body = ""; |
|||
for (var i = 0; i < bytes; i++) { |
|||
body += "C"; |
|||
} |
|||
|
|||
var server = node.http.createServer(function (req, res) { |
|||
res.sendHeader(200, [ |
|||
["Content-Type", "text/plain"], |
|||
["Content-Length", body.length] |
|||
]); |
|||
res.sendBody(body); |
|||
res.finish(); |
|||
}) |
|||
server.listen(port); |
|||
|
|||
function responseListener (res) { |
|||
res.addListener("complete", function () { |
|||
//puts("response " + completed_requests + " from client " + res.client.id);
|
|||
if (completed_requests++ < nrequests) { |
|||
res.client.get("/").finish(responseListener); |
|||
} else { |
|||
server.close(); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
function onLoad () { |
|||
for (var i = 0; i < concurrency; i++) { |
|||
var client = node.http.createClient(port); |
|||
client.id = i; |
|||
client.get("/").finish(responseListener); |
|||
} |
|||
} |
@ -0,0 +1,5 @@ |
|||
function next (i) { |
|||
if (i <= 0) return; |
|||
setTimeout(function () { next(i-1); }, 1); |
|||
} |
|||
next(700); |
Loading…
Reference in new issue