CoolFace
Apppublic

strong-tie/inbound-calls

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
bench.js99 linesDownload Raw Back to sonic-boom
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