You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

41 lines
1.0 KiB

'use strict';
const common = require('../common.js');
var messagesLength = [64, 256, 1024, 4096];
// Windows does not support that long arguments
if (process.platform !== 'win32')
messagesLength.push(32768);
const bench = common.createBenchmark(main, {
len: messagesLength,
dur: [5]
});
const child_process = require('child_process');
const exec = child_process.exec;
function main(conf) {
bench.start();
const dur = +conf.dur;
const len = +conf.len;
const msg = `"${'.'.repeat(len)}"`;
// eslint-disable-next-line no-unescaped-regexp-dot
msg.match(/./);
const options = {'stdio': ['ignore', 'pipe', 'ignore']};
const child = exec(`yes ${msg}`, options);
var bytes = 0;
child.stdout.on('data', function(msg) {
bytes += msg.length;
});
setTimeout(function() {
bench.end(bytes);
if (process.platform === 'win32') {
// Sometimes there's a yes.exe process left hanging around on Windows...
child_process.execSync(`taskkill /f /t /pid ${child.pid}`);
} else {
child.kill();
}
}, dur * 1000);
}