Charlie:

> 10 bytes for an integer ?  Why so large ? 

Discussions about the internal data representations of REBOL are based on 
guesswork, experimentation and imagination. So my answer may be inaccurate.

But ....

It seems any REBOL value occupies a minimum of 16 bytes (some say 32 bytes). 
That space information about its datatype, whether it is garbage collectable 
etc. For an integer, the actual value is held in that 16 bytes. For larger data 
items (like blocks, URLs etc) the data item contains a pointer to the value.

You can see that at work here:

  blk: copy []
  recycle
  loop 100 [append blk stats]
  foreach [a b] blk [print b - a]

You'll see a fairly consistent 16 byte reduction in memory at each new 
integer, until some sort of optimisation kicks in and something cleverer starts 
happening. But it is still the same amount of memory per newly minted integer.

Anton's 10 was a rough estimate (and probably on the low side)

Sunanda.
-- 
To unsubscribe from the list, just send an email to 
lists at rebol.com with unsubscribe as the subject.

Reply via email to