Keeping a subset of pages allocate via a single call to mmap()

Sjoerd Nijboer dlang at sjoerdnijboer.com
Sat Oct 13 20:50:21 UTC 2018


On Saturday, 13 October 2018 at 18:40:58 UTC, Per Nordlöw wrote:
> If a D-program GC-allocates via `new` an array spanning 
> multiple pages but after processing only keeps a slice to it 
> that fits inside a single `mmape`d page will GC-collection then 
> free the other unreferenced pages?
>
> I realize that such a feature in a GC of any language and type 
> must rely on the OS memory manager being able to free parts of 
> a previously allocated set of continuously positioned pages.
>
> Does this depend on whether the used page is the first, last or 
> a page in the middle of the set of pages allocated in one call 
> to mmap.

I don't believe the GC frees half of allocated memory if there 
are no references to the unreferenced point.
It would break c style strings I think.


More information about the Digitalmars-d-learn mailing list