![](/assets/images/project_default_logo.png)
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
var bench = require('nanobench');
var fs = require('fs');
var path = require('path');
var through = require('through2');
bench('small file × 5', function (b) {
warmup(run, function () {
b.start();
var i = 5;
run(function next () {
if (--i === 0) b.end();
else run(next);
});
});
function run (cb) {
smallFile()
.pipe(brfs())
.on('data', function () {})
.on('end', function () {
cb();
});
}
});
bench('large file without fs', function (b) {
warmup(run, function () {
b.start();
var i = 5;
run(function next () {
if (--i === 0) b.end();
else run(next);
});
});
function run (cb) {
largeFile()
.pipe(brfs())
.on('data', function () {})
.on('end', function () {
b.end();
});
}
});
bench('large file with fs', function (b) {
warmup(run, function () {
b.start();
var i = 5;
run(function next () {
if (--i === 0) b.end();
else run(next);
});
});
function run (cb) {
largeFile()
.pipe(withFS())
.pipe(brfs())
.on('data', function () {})
.on('end', function () {
b.end();
});
}
});
function brfs () {
return require('../')({
fs: {
readFileSync: function (path) {
return path;
}
}
});
}
function smallFile () {
var r = through();
r.end('var a, fs = require("fs"), x; fs.readFileSync("index.js");');
return r;
}
function largeFile () {
return fs.createReadStream(path.join(__dirname, './input.js'));
}
function withFS () {
return through(function (chunk, enc, next) {
next(null, chunk);
}, function (next) {
this.push('\nvar a, fs = require("fs"), x; fs.readFileSync("index.js");');
next();
});
}
function warmup (run, cb) {
var i = 5;
run(function next () {
if (--i === 0) cb();
else run(next);
});
}