summaryrefslogtreecommitdiff
path: root/benchmark/http2
diff options
context:
space:
mode:
authorMatteo Collina <hello@matteocollina.com>2019-01-18 15:31:46 +0100
committerDaniel Bevenius <daniel.bevenius@gmail.com>2019-02-11 08:50:07 +0100
commit9af04ad684a666888f76024876d7b74eee60d2f7 (patch)
tree90ce38c03c30b1331070c01c97599a14f7f303bd /benchmark/http2
parentfcaeb1f1221c7c4296d44136b2f81d8f6e0db92d (diff)
downloadandroid-node-v8-9af04ad684a666888f76024876d7b74eee60d2f7.tar.gz
android-node-v8-9af04ad684a666888f76024876d7b74eee60d2f7.tar.bz2
android-node-v8-9af04ad684a666888f76024876d7b74eee60d2f7.zip
http2: improve compat performance
This bunch of commits help me improve the performance of a http2 server by 8-10%. The benchmarks reports several 1-2% improvements in various areas. PR-URL: https://github.com/nodejs/node/pull/25567 Reviewed-By: Benedikt Meurer <benedikt.meurer@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark/http2')
-rw-r--r--benchmark/http2/compat.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/benchmark/http2/compat.js b/benchmark/http2/compat.js
new file mode 100644
index 0000000000..5d06ccf317
--- /dev/null
+++ b/benchmark/http2/compat.js
@@ -0,0 +1,35 @@
+'use strict';
+
+const common = require('../common.js');
+const path = require('path');
+const fs = require('fs');
+const file = path.join(path.resolve(__dirname, '../fixtures'), 'alice.html');
+
+const bench = common.createBenchmark(main, {
+ requests: [100, 1000, 5000],
+ streams: [1, 10, 20, 40, 100, 200],
+ clients: [2],
+ benchmarker: ['h2load']
+}, { flags: ['--no-warnings'] });
+
+function main({ requests, streams, clients }) {
+ const http2 = require('http2');
+ const server = http2.createServer();
+ server.on('request', (req, res) => {
+ const out = fs.createReadStream(file);
+ res.setHeader('content-type', 'text/html');
+ out.pipe(res);
+ out.on('error', (err) => {
+ res.destroy();
+ });
+ });
+ server.listen(common.PORT, () => {
+ bench.http({
+ path: '/',
+ requests,
+ maxConcurrentStreams: streams,
+ clients,
+ threads: clients
+ }, () => { server.close(); });
+ });
+}