Running out of memory ctfe 16GB

ketmar via Digitalmars-d digitalmars-d at puremagic.com
Thu Apr 6 15:16:20 PDT 2017


Dmitry Olshansky wrote:

> 2) Instead of building out out big string try building each interface 
> separately. If I'm not mistaken current CTFE will actually allocate a 
> whole new array on each append and copy things.
> Since it never deallocates building up a huge string by bits and pieces 
> is a bad idea as it will leak the entire thing on each append.

or use `char[]` buffer instead, manually increasing it's size by some step. 
assigning to such array won't do any copies, so growing the array by 32kb 
(or even several mb) steps will reduce memory footprint for string builders 
considerably.


More information about the Digitalmars-d mailing list