GC noscan and primitve type arrays

Daniel Murphy yebblies at nospamgmail.com
Sat Dec 28 04:03:26 PST 2013


"Benjamin Thaut" <code at benjamin-thaut.de> wrote in message 
news:l9mdb4$1lmf$1 at digitalmars.com...
> I'm curious,
> does the GC allocate primitive type arrays like uint[] as noscan memory 
> block, or are those data blocks considered for scanning? And if so why?
> I have a small program that works with lots of uint[] arrays and goes out 
> of memory. The data set it works on is not even close to the maximum 
> memory amount available. So I think these uint[] arrays keep each other 
> alive.
>
> Kind Regards
> Benjamin Thaut

import core.memory;
import std.stdio;

void main()
{
    auto x = new uint[](200);
    writeln((GC.getAttr(x.ptr) & GC.BlkAttr.NO_SCAN) != 0);
}




More information about the Digitalmars-d mailing list