strong-tie/inbound-calls
0
1'use strict'2 3const bench = require('fastbench')4const SonicBoom = require('./')5const Console = require('console').Console6const fs = require('fs')7 8const core = fs.createWriteStream('/dev/null')9const fd = fs.openSync('/dev/null', 'w')10const sonic = new SonicBoom({ fd })11const sonic4k = new SonicBoom({ fd, minLength: 4096 })12const sonicSync = new SonicBoom({ fd, sync: true })13const sonicSync4k = new SonicBoom({ fd, minLength: 4096, sync: true })14const sonicBuffer = new SonicBoom({ fd, contentMode: 'buffer' })15const sonic4kBuffer = new SonicBoom({ fd, contentMode: 'buffer', minLength: 4096 })16const sonicSyncBuffer = new SonicBoom({ fd, contentMode: 'buffer', sync: true })17const sonicSync4kBuffer = new SonicBoom({ fd, contentMode: 'buffer', minLength: 4096, sync: true })18const dummyConsole = new Console(fs.createWriteStream('/dev/null'))19 20const MAX = 1000021 22const buf = Buffer.alloc(50, 'hello', 'utf8')23const str = buf.toString()24 25setTimeout(doBench, 100)26 27const run = bench([28 function benchSonic (cb) {29 sonic.once('drain', cb)30 for (let i = 0; i < MAX; i++) {31 sonic.write(str)32 }33 },34 function benchSonicSync (cb) {35 sonicSync.once('drain', cb)36 for (let i = 0; i < MAX; i++) {37 sonicSync.write(str)38 }39 },40 function benchSonic4k (cb) {41 sonic4k.once('drain', cb)42 for (let i = 0; i < MAX; i++) {43 sonic4k.write(str)44 }45 },46 function benchSonicSync4k (cb) {47 sonicSync4k.once('drain', cb)48 for (let i = 0; i < MAX; i++) {49 sonicSync4k.write(str)50 }51 },52 function benchCore (cb) {53 core.once('drain', cb)54 for (let i = 0; i < MAX; i++) {55 core.write(str)56 }57 },58 function benchConsole (cb) {59 for (let i = 0; i < MAX; i++) {60 dummyConsole.log(str)61 }62 setImmediate(cb)63 },64 function benchSonicBuf (cb) {65 sonicBuffer.once('drain', cb)66 for (let i = 0; i < MAX; i++) {67 sonicBuffer.write(buf)68 }69 },70 function benchSonicSyncBuf (cb) {71 sonicSyncBuffer.once('drain', cb)72 for (let i = 0; i < MAX; i++) {73 sonicSyncBuffer.write(buf)74 }75 },76 function benchSonic4kBuf (cb) {77 sonic4kBuffer.once('drain', cb)78 for (let i = 0; i < MAX; i++) {79 sonic4kBuffer.write(buf)80 }81 },82 function benchSonicSync4kBuf (cb) {83 sonicSync4kBuffer.once('drain', cb)84 for (let i = 0; i < MAX; i++) {85 sonicSync4kBuffer.write(buf)86 }87 },88 function benchCoreBuf (cb) {89 core.once('drain', cb)90 for (let i = 0; i < MAX; i++) {91 core.write(buf)92 }93 }94], 1000)95 96function doBench () {97 run(run)98}99 