On Tue, Jan 27, 2009 at 10:14 AM, Saaa <[email protected]> wrote: > My program doesn't exit.. > > void main() > { > > .. > Data data[] > > createData(data); > //This proces takes a minute or two. > //data now holds about 700000 Data elements > > writefln(`Creating buffer`); > ubyte[] buffer; > for (int i=0; i<data.length; i++) > { > > buffer~=format(data[i].net,`,`,data[i].name,`,`,to!(int[])(data[i].output),`,`,to!(int[])(data[i].input),newline); > //This takes like a minute and has a peak memory usage of 680MB > } > > writefln(`Writing file`); > std.file.write(outFilename, buffer); > writefln(`Writing file finished`); > > //The file is readily made and delta memory usage shows a few a few times > around 20MB > //but the program doesn't stop, although 'Writing file finished' is shown. > //there is no static this or alike. > //and after 10 minutes the memory usage is about 370MB and slowly going up > //ctrl-c doesn't work anymore as well > }
Bug in the GC? I suppose my question would be why you're generating that huge buffer in memory instead of just writing it all out to the file in the first place. Use a std.stream.BufferedFile.
