summaryrefslogtreecommitdiff
path: root/benchmark/http
diff options
context:
space:
mode:
authorAnatoli Papirovski <apapirovski@mac.com>2018-04-24 10:24:51 +0200
committerAnna Henningsen <anna@addaleax.net>2018-04-27 20:31:25 +0200
commit602ffd6986becd6ac8ac172bf4372878f7ba8f22 (patch)
tree02b70206b593b3a9240d99436062e86868111dce /benchmark/http
parentb87ef189e91e475ca4811addc3f4201641f8789b (diff)
downloadandroid-node-v8-602ffd6986becd6ac8ac172bf4372878f7ba8f22.tar.gz
android-node-v8-602ffd6986becd6ac8ac172bf4372878f7ba8f22.tar.bz2
android-node-v8-602ffd6986becd6ac8ac172bf4372878f7ba8f22.zip
http: refactor outgoing headers processing
Use a shared function, for..in instead of Object.keys, do less work in `setHeader` and instead defer some of it until later, and other minor changes to improve clarity, as well as a slight boost in performance. PR-URL: https://github.com/nodejs/node/pull/20250 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark/http')
-rw-r--r--benchmark/http/headers.js36
1 files changed, 36 insertions, 0 deletions
diff --git a/benchmark/http/headers.js b/benchmark/http/headers.js
new file mode 100644
index 0000000000..748865afbf
--- /dev/null
+++ b/benchmark/http/headers.js
@@ -0,0 +1,36 @@
+'use strict';
+
+const common = require('../common.js');
+const http = require('http');
+
+const bench = common.createBenchmark(main, {
+ duplicates: [1, 100],
+ n: [10, 1000],
+});
+
+function main({ duplicates, n }) {
+ const headers = {
+ 'Connection': 'keep-alive',
+ 'Transfer-Encoding': 'chunked',
+ };
+
+ for (var i = 0; i < n / duplicates; i++) {
+ headers[`foo${i}`] = [];
+ for (var j = 0; j < duplicates; j++) {
+ headers[`foo${i}`].push(`some header value ${i}`);
+ }
+ }
+
+ const server = http.createServer(function(req, res) {
+ res.writeHead(200, headers);
+ res.end();
+ });
+ server.listen(common.PORT, function() {
+ bench.http({
+ path: '/',
+ connections: 10
+ }, function() {
+ server.close();
+ });
+ });
+}