58 lines
1.2 KiB
JavaScript
Executable File
58 lines
1.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
'use strict';
|
|
|
|
const EventEmitter = require('events').EventEmitter;
|
|
|
|
const fs = require('fs-extra');
|
|
const async = require('async');
|
|
|
|
const lib = require('../index.js');
|
|
|
|
const dir = './tmp/';
|
|
|
|
fs.readdir(dir).then(files => {
|
|
const tt0 = Date.now();
|
|
async.eachLimit(files, 1, (fileName, callback) => {
|
|
let len = 0;
|
|
let chunks = 0;
|
|
let goodChunks = 0;
|
|
let start = 0;
|
|
let stop = 0;
|
|
const t0 = Date.now();
|
|
|
|
const ee = new EventEmitter();
|
|
|
|
const cxt = lib.init();
|
|
lib.setTrigger(cxt, 'D1');
|
|
ee.on('trigger', time => {
|
|
if (time < 10) {
|
|
return 0;
|
|
}
|
|
if (start == 0) {
|
|
start = time;
|
|
} else {
|
|
stop = time;
|
|
}
|
|
});
|
|
|
|
const s = fs.createReadStream(dir + fileName);
|
|
s.on('data', chunk => {
|
|
if (lib.execute(cxt, ee.emit.bind(ee), chunk) === 0) {
|
|
goodChunks++;
|
|
}
|
|
len += chunk.length;
|
|
chunks++;
|
|
});
|
|
s.on('end', () => {
|
|
// const info = lib.getInfo(cxt);
|
|
// console.log(info);
|
|
console.log(fileName, chunks, len, goodChunks, (stop - start),
|
|
((Date.now() - t0) / 1000 + 's')
|
|
);
|
|
callback();
|
|
});
|
|
}, () => {
|
|
console.log('Total time: ' + (Date.now() - tt0) / 1000 + 's');
|
|
});
|
|
});
|