On Fri, 18 Apr 2014 16:17:10 +0000, Brad Anderson wrote: > > You can actually prevent scanning/collection already without much > difficulty: > > GC.disable(); > scope(exit) GC.enable(); > > I feel like @nogc is most useful in avoiding surprises by declaring your > assumptions. Problems like how toUpperInPlace would still allocate (with > gusto) could much more easily be recognized and fixed with @nogc > available.
I am talking more about hinting to the conservative GC about blocks it doesn't need to scan for addresses. struct Vertex { int x, y, z, w; } @nogcscan Vertex vertexs[10_000]; so when a GC scan does happen it can skip scanning the vertexs memory block completely since we are promising not to hold on to addresses in it.