diff --git a/examples/stats.html b/examples/stats.html index e6e53e67..3f61233b 100644 --- a/examples/stats.html +++ b/examples/stats.html @@ -83,12 +83,13 @@ } // create a new Series for this key // add it into the map - chart = Stats[key] = new SmoothieChart({responsive: true, minValue: 0, grid:{strokeStyle:'rgba(100%,100%,100%,0.2)'},labels:{fontSize:20}}); + chart = Stats[key] = new SmoothieChart({millisPerPixel:500, limitFPS: 16, responsive: true, minValue: 0, grid:{strokeStyle:'rgba(100%,100%,100%,0.2)'},labels:{fontSize:20}, grid: {verticalSections: 0, millisPerLine: 15000 * 4 /*, strokeStyle:'rgb(125, 0, 0)'*/}}); chart.line = new TimeSeries(); chart.addTimeSeries(chart.line,{ strokeStyle:'rgb('+Math.random()*255+', '+Math.random()*255+','+Math.random()*255+')', lineWidth:5 }); chart.canvas = $('.model').find('.chart').clone(true).appendTo('.charts'); chart.canvas.find('span').text(key); chart.streamTo(chart.canvas.find('canvas').get(0), 15 * 1000); + chart.line.append(0, 0); // check first two characters of key to determine other charts to add this in // tbd later return chart; diff --git a/lib/evict.js b/lib/evict.js index 8e0023bf..48e69437 100644 --- a/lib/evict.js +++ b/lib/evict.js @@ -16,8 +16,8 @@ function check(){ var used = util().rss / 1024 / 1024; var hused = heap().used_heap_size / 1024 / 1024; - //if(hused < ev.max && used < ev.max){ return } - if(used < ev.max){ return } + if(hused < ev.max && used < ev.max){ return } + //if(used < ev.max){ return } console.LOG && Gun.log('evict memory:', hused.toFixed(), used.toFixed(), ev.max.toFixed()); GC();//setTimeout(GC, 1); } diff --git a/lib/radisk.js b/lib/radisk.js index 8c873546..cc3539b3 100644 --- a/lib/radisk.js +++ b/lib/radisk.js @@ -20,6 +20,7 @@ function atomic(v){ return u !== v && (!v || 'object' != typeof v) } var map = Gun.obj.map; var LOG = console.LOG; + var ST = 0; if(!opt.store){ return opt.log("ERROR: Radisk needs `opt.store` interface with `{get: fn, put: fn (, list: fn)}`!"); @@ -319,7 +320,7 @@ LOG && opt.log(S, +new Date - S, 'rad read in, ack', disk.length); S = +new Date; var STMP = disk.length; // TMP STATS! DELETE! map(disk, g.ack); - LOG && opt.log(S, +new Date - S, 'rad read acked', STMP, JSON.stringify(g.file)); + LOG && opt.log(S, +new Date - S, 'rad read acked', STMP, JSON.stringify(g.file)); // this grows before spike? } g.ack = function(as){ if(!as.ack){ return } @@ -431,8 +432,9 @@ try{ var json = JSON.parse(data); // TODO: this caused a out-of-memory crash! p.disk.$ = json; - LOG && opt.log(S, +new Date - S, 'rad parsed JSON'); + LOG && opt.log(S, ST = +new Date - S, 'rad parsed JSON'); map(q, p.ack); + LOG && (ST > 500) && require('./email').send({text: ""+ST+"ms "+file, from: "mark@gun.eco", to: "mark@gun.eco", subject: "RAD JSON parse"}, noop); // this is ONLY turned on if ENV CONFIGS have email/password to send out from. return; }catch(e){ tmp = e } if('{' === data[0]){ diff --git a/lib/radix.js b/lib/radix.js index 441f9540..a3523f3e 100644 --- a/lib/radix.js +++ b/lib/radix.js @@ -51,7 +51,7 @@ return radix; }; - Radix.map = function map(radix, cb, opt, pre){ pre = pre || []; + Radix.map = function map(radix, cb, opt, pre){ pre = pre || []; // TODO: BUG: most out-of-memory crashes come from here. var t = ('function' == typeof radix)? radix.$ || {} : radix; if(!t){ return } var keys = (t[_]||no).sort || (t[_] = function $(){ $.sort = Object.keys(t).sort(); return $ }()).sort, rev;