diff options
Diffstat (limited to 'benchmark/fs')
-rw-r--r-- | benchmark/fs/readfile.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/benchmark/fs/readfile.js b/benchmark/fs/readfile.js new file mode 100644 index 0000000000..38548ef647 --- /dev/null +++ b/benchmark/fs/readfile.js @@ -0,0 +1,48 @@ +// Call fs.readFile over and over again really fast. +// Then see how many times it got called. +// Yes, this is a silly benchmark. Most benchmarks are silly. + +var path = require('path'); +var common = require('../common.js'); +var filename = path.resolve(__dirname, '.removeme-benchmark-garbage'); +var fs = require('fs'); + +var bench = common.createBenchmark(main, { + dur: [1, 3], + len: [1024, 16 * 1024 * 1024], + concurrent: [1, 10] +}); + +function main(conf) { + var len = +conf.len; + try { fs.unlinkSync(filename); } catch (e) {} + var data = new Buffer(len); + data.fill('x'); + fs.writeFileSync(filename, data); + data = null; + + var reads = 0; + bench.start(); + setTimeout(function() { + bench.end(reads); + try { fs.unlinkSync(filename); } catch (e) {} + }, +conf.dur * 1000); + + function read() { + fs.readFile(filename, afterRead); + } + + function afterRead(er, data) { + if (er) + throw er; + + if (data.length !== len) + throw new Error('wrong number of bytes returned'); + + reads++; + read(); + } + + var cur = +conf.concurrent; + while (cur--) read(); +} |