Hello all,

I'm doing some work with a fairly large dataset. For various reasons it's convenient to import it first as simply an array of data points which is then used to generate other data structures (actually, technically it's an array of data points plus a couple of associative arrays, which ideally would instead be sets; but I think that's a minor detail).

Once the various data structures are in place, it's possible to discard the initial array data. It would be very desirable to free up the memory allocated, as it's a very large amount. However, I can't work out how to do this.

I've tried calling destroy() on the input data, with and without a subsequent GC.collect(), but the program's memory usage still remains at its peak level. This is a shame, because that peak memory usage only needs to last for a short part of the program's total runtime, and it seems only polite to other computer users to give back the excess memory.

Can anyone advise? I would rather not disable the GC entirely as there's lots of Phobos I want to be able to use -- but I'd really like it if I could indicate categorically to the GC, "these objects and arrays need to be deleted and the memory freed _now_".

Thanks and best wishes,

      -- Joe

Reply via email to