'use strict' var bench = require('fastbench') var SonicBoom = require('./') var fs = require('fs') var core = fs.createWriteStream('/dev/null') var fd = fs.openSync('/dev/null', 'w') var sonic = new SonicBoom(fd) var sonic4k = new SonicBoom(fd, 4096) var sonicSync = new SonicBoom(fd, 0, true) var sonicSync4k = new SonicBoom(fd, 4096, true) var MAX = 10000 function str () { var res = '' for (var i = 0; i < 10; i++) { res += 'hello' } return res } setTimeout(doBench, 100) var run = bench([ function benchSonic (cb) { sonic.once('drain', cb) for (var i = 0; i < MAX; i++) { sonic.write(str()) } }, function benchSonicSync (cb) { sonicSync.once('drain', cb) for (var i = 0; i < MAX; i++) { sonicSync.write(str()) } }, function benchSonic4k (cb) { sonic4k.once('drain', cb) for (var i = 0; i < MAX; i++) { sonic4k.write(str()) } }, function benchSonicSync4k (cb) { sonicSync4k.once('drain', cb) for (var i = 0; i < MAX; i++) { sonicSync4k.write(str()) } }, function benchCore (cb) { core.once('drain', cb) for (var i = 0; i < MAX; i++) { core.write(str()) } } ], 1000) function doBench () { run(run) }