UNPKG

perf

Version:

nanømsg style performance benchmarks

43 lines (35 loc) 1.04 kB
'use strict'; var net = require('net'); var assert = require('assert'); if (process.argv.length != 5) { console.log('usage: node local_thr.js <bind-to> <msg-size> <msg-count>'); process.exit(1); } var bind_to = process.argv[2].split('//')[1].split(':'); var sz = Number(process.argv[3]); var count = Number(process.argv[4]); var sw, i = 0; var s = net.createServer(function(sock) { sock.pipe(sock).on('data', handler); }); s.listen(bind_to[1]); function handler (data) { assert(data.length === sz); if (!sw) sw = process.hrtime(); if (++i === count) return finish(); } function finish() { sw = process.hrtime(sw); var total = sw[0] + (sw[1] / 1e9); var thr = count / total; var mbs = (thr * sz * 8) / 1000000; console.log('message size: %d [B]', sz); console.log('message count: %d', count); console.log('throughput: %d [msg/s]', thr.toFixed(0)); console.log('throughput: %d [Mb/s]', mbs.toFixed(3)); s.unref(); } setTimeout(function(){ process.exit(0); },9000)