Browse files

bench: use res.end() for chunked encoding

Use res.end() for the final chunk so we can benchmark the 'hot path' shortcut
in lib/http.js that packs the headers and the body into a single packet.
  • Loading branch information...
1 parent 04adf0e commit ba407ce4106635949fcd5fdeced255d543ab1079 @bnoordhuis bnoordhuis committed Dec 19, 2012
Showing with 8 additions and 10 deletions.
  1. +4 −5 benchmark/http_simple.js
  2. +4 −5 benchmark/http_simple_auto.js
View
9 benchmark/http_simple.js
@@ -96,13 +96,12 @@ var server = http.createServer(function (req, res) {
'Transfer-Encoding': 'chunked' });
// send body in chunks
var len = body.length;
- var step = ~~(len / n_chunks) || len;
+ var step = Math.floor(len / n_chunks) || 1;
- for (var i = 0; i < len; i += step) {
- res.write(body.slice(i, i + step));
+ for (var i = 0, n = (n_chunks - 1); i < n; ++i) {
+ res.write(body.slice(i * step, i * step + step));
}
-
- res.end();
+ res.end(body.slice((n_chunks - 1) * step));
} else {
var content_length = body.length.toString();
View
9 benchmark/http_simple_auto.js
@@ -77,13 +77,12 @@ var server = http.createServer(function (req, res) {
"Transfer-Encoding": "chunked" });
// send body in chunks
var len = body.length;
- var step = ~~(len / n_chunks) || len;
+ var step = Math.floor(len / n_chunks) || 1;
- for (var i = 0; i < len; i += step) {
- res.write(body.slice(i, i + step));
+ for (var i = 0, n = (n_chunks - 1); i < n; ++i) {
+ res.write(body.slice(i * step, i * step + step));
}
-
- res.end();
+ res.end(body.slice((n_chunks - 1) * step));
} else {
var content_length = body.length.toString();

0 comments on commit ba407ce

Please sign in to comment.