mirror of https://github.com/lukechilds/node.git
Fedor Indutny
12 years ago
1 changed files with 42 additions and 0 deletions
@ -0,0 +1,42 @@ |
|||
// When calling .end(buffer) right away, this triggers a "hot path"
|
|||
// optimization in http.js, to avoid an extra write call.
|
|||
//
|
|||
// However, the overhead of copying a large buffer is higher than
|
|||
// the overhead of an extra write() call, so the hot path was not
|
|||
// always as hot as it could be.
|
|||
//
|
|||
// Verify that our assumptions are valid.
|
|||
|
|||
var common = require('../common.js'); |
|||
var PORT = common.PORT; |
|||
|
|||
var bench = common.createBenchmark(main, { |
|||
num: [1, 4, 8, 16], |
|||
size: [1, 64, 256], |
|||
c: [100] |
|||
}); |
|||
|
|||
function main(conf) { |
|||
http = require('http'); |
|||
var chunk = new Buffer(conf.size); |
|||
chunk.fill('8'); |
|||
|
|||
var args = ['-r', 5000, '-t', 8, '-c', conf.c]; |
|||
|
|||
var server = http.createServer(function(req, res) { |
|||
function send(left) { |
|||
if (left === 0) return res.end(); |
|||
res.write(chunk); |
|||
setTimeout(function() { |
|||
send(left - 1); |
|||
}, 0); |
|||
} |
|||
send(conf.num); |
|||
}); |
|||
|
|||
server.listen(common.PORT, function() { |
|||
bench.http('/', args, function() { |
|||
server.close(); |
|||
}); |
|||
}); |
|||
} |
Loading…
Reference in new issue