mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
686984696d
read() performance is improved most by switching from an array to a linked list for storing buffered data. However, other changes that also contribute include: making some hot functions inlinable, faster read() argument checking, and misc code rearrangement to avoid unnecessary code execution. PR-URL: https://github.com/nodejs/node/pull/7077 Reviewed-By: Calvin Metcalf <calvin.metcalf@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
33 lines
675 B
JavaScript
33 lines
675 B
JavaScript
'use strict';
|
|
|
|
const common = require('../common');
|
|
const v8 = require('v8');
|
|
const Readable = require('stream').Readable;
|
|
|
|
const bench = common.createBenchmark(main, {
|
|
n: [100e1]
|
|
});
|
|
|
|
function main(conf) {
|
|
const n = +conf.n;
|
|
const b = new Buffer(32);
|
|
const s = new Readable();
|
|
function noop() {}
|
|
s._read = noop;
|
|
|
|
// Force optimization before starting the benchmark
|
|
s.push(b);
|
|
v8.setFlagsFromString('--allow_natives_syntax');
|
|
eval('%OptimizeFunctionOnNextCall(s.read)');
|
|
s.push(b);
|
|
while (s.read(106));
|
|
|
|
bench.start();
|
|
for (var k = 0; k < n; ++k) {
|
|
for (var i = 0; i < 1e4; ++i)
|
|
s.push(b);
|
|
while (s.read(106));
|
|
}
|
|
bench.end(n);
|
|
}
|