[Issue 1980] New: memory allocated via double[][] is not being freed by the GC
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Tue Apr 8 14:27:51 PDT 2008
http://d.puremagic.com/issues/show_bug.cgi?id=1980
Summary: memory allocated via double[][] is not being freed by
the GC
Product: D
Version: 2.012
Platform: PC
OS/Version: Linux
Status: NEW
Severity: major
Priority: P2
Component: DMD
AssignedTo: bugzilla at digitalmars.com
ReportedBy: markusle at gmail.com
Hi,
For a data processing application I need to read a large number
of data sets from disk. Due to their size, they have to be read and
processed sequentially, i.e. in pseudocode
int main()
{
while (some condition)
{
double[][] myLargeDataset = read_data();
process_data(myLargeDataset);
// free all memory here otherwise next cycle will
// run out of memory
}
return 0;
}
Now, the "problem" is the fact that each single data-set saturates
system memory and hence I need to make sure that all memory
is freed after each process_data step is complete. Unfortunately,
using dmd-2.012 I have not been able to achieve this. Whatever
I do (including nothing, i.e., letting the GC do its job), the resulting
binary keeps accumulating memory and crashing shortly after.
I've tried deleting the array, setting it to null, setting the array
lengths to 0, and manually forcing the GC to collect, to no avail.
Hence, is there something I am doing terribly wrong or is this a
bug in dmd?
Thanks much,
Markus
--
More information about the Digitalmars-d-bugs
mailing list