reisarod's picture
Upload folder using huggingface_hub
5fae594 verified
// forked from github.com/creationix/jsonparse
// brew install yajl
// npm install jsonparse yajl
// node bench/async.js samples/npm.json
// jsonfile
var fs = require('fs')
, clarinet = require('../clarinet')
, Parser = require('jsonparse')
, jsonparser
, p
, s
, start
, max = process.argv[3] || 1
, n = process.argv[4] || 9
, averages = {}
;
function update_averages(what, time) {
if(averages[what]) {
averages[what].n++;
averages[what].time = averages[what].time + time;
}
else averages[what] = {n: 1, time: time};
}
console.log('=N("node bench/async.js ' + process.argv[2] + ' ' +
max + ' ' + n + '")');
console.log('=N("clp (clarinet parser), cls (clarinet event emitter)")');
//console.log('=N("jpp (creationix/jsonparse)")');
function stream_bench(cb) {
s = clarinet.createStream();
s.on('end', function () {
var exectime = Date.now()-start;
console.log('cls, %s', exectime);
update_averages('cls', exectime);
cb();
});
var fs_read = fs.createReadStream(process.argv[2]);
fs_read.setEncoding('utf-8');
fs_read.on('data', function(chunk) {
for (var i = 0; i < max; i++) s.write(chunk);
});
fs_read.on('end', function () { s.end(); });
start = Date.now();
}
function parser_bench(cb) {
p = clarinet.parser();
p.onend = function () {
var exectime = Date.now()-start;
console.log('clp, %s', exectime);
update_averages('clp', exectime); cb();
};
var fs_read = fs.createReadStream(process.argv[2]);
fs_read.setEncoding('utf-8');
fs_read.on('data', function(chunk) {
for (var i = 0; i < max; i++) p.write(chunk);
});
fs_read.on('end', function () {
p.end();
if(n===0) process.exit();
n--;
setTimeout(repeat,0);
});
start = Date.now();
}
function repeat() {
stream_bench(function () {
return parser_bench(function(){ }); });
}
function output_avg() {
console.log('=N("# Version")');
console.log('=N("' + JSON.stringify(process.versions).replace(/"/g, "'") + '")');
console.log('=N("# Summary")');
for(var k in averages) {
console.log('=N("* %s [%s]: %s ms")', k, averages[k].n,
averages[k].time/averages[k].n);
}
}
process.on('SIGINT', function () {
output_avg();
process.exit(1);
});
process.on('exit', output_avg);
repeat();