nutri/external/ctre/tests/benchmark-exec/jsc.js

61 lines
1.5 KiB
JavaScript

var path = '/Users/hanka/Documents/documents/export-medium.csv';
var pattern = '[0-9a-fA-F]{8,16}?';
if (typeof arguments !== 'undefined') {
for (i in arguments) {
var val = arguments[i];
if (val.substring(0,5) == "path=") path = val.substring(5);
if (val.substring(0,8) == "pattern=") pattern = val.substring(8);
}
} else if (typeof process !== 'undefined') {
process.argv.forEach((val, index, array) => {
if (val.substring(0,5) == "path=") path = val.substring(5);
if (val.substring(0,8) == "pattern=") pattern = val.substring(8);
});
}
//console.log(path);
//console.time("reading input file");
var buffer = null;
if (readFile) {
buffer = readFile(path);
} else {
var fs = require('fs');
buffer = fs.readFileSync(path);
}
//console.timeEnd("reading input file");
var lines = [];
//console.time("to string");
var str = buffer.toString('ascii');
//console.timeEnd("to string");
//console.time("split");
var data = str.split("\n");
//console.timeEnd("split");
// read lines to array
var re = new RegExp(pattern);
var count = 0;
print(preciseTime());
var start = preciseTime();
//console.time("matching");
for (i in data) {
var line = data[i];
////console.log(line.search(re));
if (line.search(re) != -1) {
//print(line+'\n');
////console.log(line);
count++; ////console.log(line);
}
}
var end = preciseTime();
print("matching: " + ((end-start)*1000) + " ms");
print("matched: " + count);
//console.timeEnd("matching");
//console.log("matched: "+count);