mIRC Homepage
Posted By: Voglea Hash tables size in bytes - 28/06/10 05:16 AM
It possible?

var %i = $hget(0), %s = 0
while (%i) {
var %table = $hget(%i), %t = $hget(%table,0).item, %i = %i - 1
while (%t) var %s = %s + $len($hget(%table,%i).item), %s = %s + $len($hget(%table,%i).data), %t = %t - 1
}
return $bytes(%s).suf

but this is stupid, i think.

Just wanna know, how mIRC using memory, not himself, only bases: hash tables.
Posted By: DJ_Sol Re: Hash tables size in bytes - 28/06/10 05:45 AM
I need to know what kind of data is in your table. Can you show me an item in your table please.
Posted By: RusselB Re: Hash tables size in bytes - 28/06/10 06:43 AM
It looks like you're trying to determine the amount of memory used by your hash tables.

If so, then the code you wrote is along the right idea. You just have some problems with syntax and structure.

Here's the one I wrote, and tested, and it appears to be correct based upon the data in my hash tables
Code:
alias hash_size {
  var %a = $hget(0)
  while %a {
    var %c = $hget(%a), %d = $hget(%c,0).item
    while %d  {
      var %e = $hget(%c,%d).item, %f = $hget(%c,%d).data
      inc %g $calc($len(%e) + $len(%f))
      dec %d
    }
    dec %a
  }
  echo -a $bytes(%g).suf
}

Posted By: Wims Re: Hash tables size in bytes - 28/06/10 10:10 AM
Quote:
If so, then the code you wrote is along the right idea. You just have some problems with syntax and structure.
His code is perfectly fine, where are the syntax or structure problem ?
Posted By: DJ_Sol Re: Hash tables size in bytes - 28/06/10 05:48 PM
Probably where he tries to calc the numbers without $calc and just uses +.
Posted By: Riamus2 Re: Hash tables size in bytes - 28/06/10 08:09 PM
You don't need $calc() with /vars ... at least with a basic calculation as was used.

The error is in:
Code:
while (%t) var %s = %s + $len($hget(%table,%i).item), %s = %s + $len($hget(%table,%i).data), %t = %t - 1



%t needs to be used instead of %i in both $hget() sections. That's the only change necessary, but RusselB's is a bit easier to read. smile
© mIRC Discussion Forums