summaryrefslogtreecommitdiff
path: root/benchmark
diff options
context:
space:
mode:
Diffstat (limited to 'benchmark')
-rw-r--r--benchmark/http/bench-parser.js68
1 files changed, 36 insertions, 32 deletions
diff --git a/benchmark/http/bench-parser.js b/benchmark/http/bench-parser.js
index d629fe67e5..087616f44e 100644
--- a/benchmark/http/bench-parser.js
+++ b/benchmark/http/bench-parser.js
@@ -1,50 +1,54 @@
'use strict';
const common = require('../common');
-const HTTPParser = process.binding('http_parser').HTTPParser;
-const REQUEST = HTTPParser.REQUEST;
-const kOnHeaders = HTTPParser.kOnHeaders | 0;
-const kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0;
-const kOnBody = HTTPParser.kOnBody | 0;
-const kOnMessageComplete = HTTPParser.kOnMessageComplete | 0;
-const CRLF = '\r\n';
const bench = common.createBenchmark(main, {
len: [4, 8, 16, 32],
- n: [1e5],
+ n: [1e5]
+}, {
+ flags: ['--expose-internals', '--no-warnings']
});
function main({ len, n }) {
- var header = `GET /hello HTTP/1.1${CRLF}Content-Type: text/plain${CRLF}`;
-
- for (var i = 0; i < len; i++) {
- header += `X-Filler${i}: ${Math.random().toString(36).substr(2)}${CRLF}`;
+ const { internalBinding } = require('internal/test/binding');
+ const { HTTPParser } = internalBinding('http_parser');
+ const REQUEST = HTTPParser.REQUEST;
+ const kOnHeaders = HTTPParser.kOnHeaders | 0;
+ const kOnHeadersComplete = HTTPParser.kOnHeadersComplete | 0;
+ const kOnBody = HTTPParser.kOnBody | 0;
+ const kOnMessageComplete = HTTPParser.kOnMessageComplete | 0;
+ const CRLF = '\r\n';
+
+ function processHeader(header, n) {
+ const parser = newParser(REQUEST);
+
+ bench.start();
+ for (var i = 0; i < n; i++) {
+ parser.execute(header, 0, header.length);
+ parser.reinitialize(REQUEST);
+ }
+ bench.end(n);
}
- header += CRLF;
- processHeader(Buffer.from(header), n);
-}
+ function newParser(type) {
+ const parser = new HTTPParser(type);
-function processHeader(header, n) {
- const parser = newParser(REQUEST);
+ parser.headers = [];
- bench.start();
- for (var i = 0; i < n; i++) {
- parser.execute(header, 0, header.length);
- parser.reinitialize(REQUEST);
- }
- bench.end(n);
-}
+ parser[kOnHeaders] = function() { };
+ parser[kOnHeadersComplete] = function() { };
+ parser[kOnBody] = function() { };
+ parser[kOnMessageComplete] = function() { };
-function newParser(type) {
- const parser = new HTTPParser(type);
+ return parser;
+ }
- parser.headers = [];
+ let header = `GET /hello HTTP/1.1${CRLF}Content-Type: text/plain${CRLF}`;
- parser[kOnHeaders] = function() { };
- parser[kOnHeadersComplete] = function() { };
- parser[kOnBody] = function() { };
- parser[kOnMessageComplete] = function() { };
+ for (var i = 0; i < len; i++) {
+ header += `X-Filler${i}: ${Math.random().toString(36).substr(2)}${CRLF}`;
+ }
+ header += CRLF;
- return parser;
+ processHeader(Buffer.from(header), n);
}