diff --git a/lib/debug.js b/lib/debug.js index e6e4f59a..a1a26375 100644 --- a/lib/debug.js +++ b/lib/debug.js @@ -1,24 +1,49 @@ ;(function(){ if('debug' !== process.env.GUN_ENV){ return } - var db = {}; + var db = {length: 0, hash: {}}; console.log("start :)"); global.DEBUG = 1; setInterval(function(){ + var print = '', tmp; var mem = process.memoryUsage(); - var used = mem.heapTotal / 1024 / 1024; - var print = ''; + var used = mem.rss / 1024 / 1024; used = used.toFixed(1); - print += used +' MB. ' + print += used +' MB rss. '; + var used = mem.heapTotal / 1024 / 1024; + used = used.toFixed(1); + print += used +' MB hT. '; + var used = mem.heapUsed / 1024 / 1024; + used = used.toFixed(1); + print += used +' MB hU. '; if(db.root){ db.concurrency = Object.keys(db.peers||{}).length; print += db.concurrency +' peers. '; db.nodes = Object.keys(db.root.graph||{}).length; print += db.nodes + ' nodes. '; + if(db.count){ print += db.count + ' msgs. '} + if(tmp = db.root.msgsLength){ + tmp = (tmp / 1024 / 1024).toFixed(2); + print += tmp + ' length MB. '; + } + if(db.last){ print += '\n' + JSON.stringify(db.last, null, 2) } + if(db.hash){ + print += '\nSome 100 Fast Hash Counts: \n' + JSON.stringify(db.hash, null, 2); + var l = Object.keys(db.hash), i = l.length; + if(i > 100){ + i = i - 100; + Gun.list.map(l, function(k){ + if(--i <= 0){ return } + delete db.hash[k]; + }); + } + } + } - if(db.count){ print += db.count + ' msgs. '} - console.log(db.print = print); + db.print = print; + //print = print.split('\n')[0]; + console.log(print); }, 2500); var Gun = require('../gun'); @@ -32,9 +57,16 @@ db.count = 0; root.on('in', function(msg){ this.to.next(msg); - db.last = msg; + if(!msg.NTS){ db.last = msg } db.count++; - }) + var tmp = msg['##']; + if(tmp && msg.put){ + if(!db.hash[tmp]){ db.hash[tmp] = [0, ''] } + db.hash[tmp][0] = (db.hash[tmp][0] || 0) + 1; + var preview = Object.keys(msg.put||{}); + db.hash[tmp][1] = preview.toString(', ').slice(0,500) + ' ...'; + } + }); }) }()); \ No newline at end of file diff --git a/lib/evict.js b/lib/evict.js index 8b95f558..77fa268c 100644 --- a/lib/evict.js +++ b/lib/evict.js @@ -13,7 +13,7 @@ setInterval(check, 1000); function check(){ - var used = ev.used = util().heapTotal / 1024 / 1024; + var used = ev.used = util().rss / 1024 / 1024; if(used < ev.max){ return } setTimeout(GC, 1); } diff --git a/lib/wire.js b/lib/wire.js index 2060d359..2c815cb9 100644 --- a/lib/wire.js +++ b/lib/wire.js @@ -77,6 +77,7 @@ Gun.on('opt', function(ctx){ ctx.on('hi', peer); wire.on('message', function(msg){ //console.log("MESSAGE", msg); + ctx.msgsLength = (ctx.msgsLength || 0) + (msg.data || msg).length; // TEMPORARY, NON-STANDARD, FOR DEBUG opt.mesh.hear(msg.data || msg, peer); }); wire.on('close', function(){