July 09, 2012
On Monday, July 09, 2012 19:46:53 maarten van damme wrote:
> I use a foreach with parallel where I download and process webpages. Needles to say, this can consume a lot of memory at peak times. I've noticed the D garbage collector doesn't return the memory when it isn't needed anymore. Is there any clever way to limit that usage? Currently it consumes 1 gig but I'm afraid it'll get even higher...

As I understand it, the GC _never_ returns memory to the OS once it has it. Certainly that used to be the case, so unless that's been changed, it's still the case.

- Jonathan M Davis
July 09, 2012
On Mon, 09 Jul 2012 19:49:07 +0200, Jonathan M Davis <jmdavisProg@gmx.com> wrote:

> On Monday, July 09, 2012 19:46:53 maarten van damme wrote:
>> I use a foreach with parallel where I download and process webpages.
>> Needles to say, this can consume a lot of memory at peak times. I've
>> noticed the D garbage collector doesn't return the memory when it
>> isn't needed anymore. Is there any clever way to limit that usage?
>> Currently it consumes 1 gig but I'm afraid it'll get even higher...
>
> As I understand it, the GC _never_ returns memory to the OS once it has it.
> Certainly that used to be the case, so unless that's been changed, it's still
> the case.
>
> - Jonathan M Davis

I think this was fixed some time ago, and seem to remember testing it with success on windows.
https://github.com/D-Programming-Language/druntime/blob/master/src/gc/gcx.d#L1880

I might be wrong of course :)