gun/test/ptsd/radisk.js
2017-07-12 15:49:07 -07:00

71 lines
1.6 KiB
JavaScript

var Radix = require('../../lib/radix');
var Radisk = require('../../lib/radisk');
var Gun = require('../../gun');
var fs = require('fs');
var TOTAL = 1000000;
var c = 0;
var acked = 0;
var start;
var diff;
(function(){//return;
var radix = Radisk();
var gtr = Gun()._.opt.uuid;
var l = 500000;
var last = start;
var t = Gun.time.is;
var at = c;
var toc, alldone = function(){
acked++;
if(acked < TOTAL){ return }
diff = (Gun.time.is() - start) / 1000;
clearTimeout(toc);
toc = setTimeout(CHECK,1000);
}
function bench(){
if(c >= (TOTAL)){ return clearInterval(it); }
for(var i = 0; i < l; i++){
radix(++c, gtr(), alldone);
if(c % 50000 === 0){
var now = t();
console.log(c);//, (now - last)/1000);
at = c;
last = now;
}
}
}
start = Gun.time.is();
var it = setInterval(bench, 1);
}());
function CHECK(){
console.log(Math.floor(c / diff), 'disk writes per second');
var disk = Radisk();
var all = {};
var to;
var i = TOTAL;
/*while(--i){
all[i] = true;
}*/
var dir = fs.readdirSync('radata');
dir.forEach(function(file){
disk.read(file, function(err, rad){
Radix.map(rad, function(val, key){
all[key] = false;
clearTimeout(to);
to = setTimeout(function(){
var len = Object.keys(all).length;
console.log("how many?", len);
if(len < TOTAL){ return }
var missing = [];
var fail = Gun.obj.map(all, function(val, key){
if(val){ missing.push(key); return true }
});
//console.log(all);
console.log("DONE!", 'Verify ALL writes:', fail? '!!!FAIL!!!!' : 'YES');// '. Missing:', missing);
},1000);
})
})
})
}