On Monday, 16 April 2012 at 11:30:52 UTC, deadalnix wrote:
Le 16/04/2012 11:25, Walter Bright a écrit :
As for data that has no pointers, something has to indicate
that. Of
course, another strategy is to allocate such data in separate
pools. In
fact, that might be an excellent idea, as such pools would
never have to
be read (i.e. swapped in, loaded into cache) during the
mark/sweep process.
That is exactly what I meant. Metadata about the block
shouldn't be stored anywhere near the block, because it will
behave horribly wrong when swap come into play. Metadata must
be read and written when GC does its job, but the block itself
doesn't require it.
+1
Agree, the metadata should be stored in a allocator private pool
for cache reasons.