Concern about dmd memory usage on win32

Jonathan M Davis jmdavisProg at gmx.com
Fri Dec 7 08:23:06 PST 2012


On Friday, December 07, 2012 15:23:36 monarch_dodra wrote:
> In particular, when compiling "-unittest std\algorithm.d", dmd
> uses *nearly* 1 GB (it uses about 1,051,176K on my machine).
> 
> Problem is that when it reaches 1GB, it crashes. I have a pull
> request which adds a few unittests to algorithm, and it is
> consistently crashing on win32 with an out of memory error.
> 
> In layman's terms: std\algorithm.d is full. You literally can't
> add any more unittests to it, without crashing dmd on win32.
> 
> I'd have recommended splitting the unittests in sub-modules or
> whatnot, but come to think about it, I'm actually more concern
> that a module could *singlehandedly* make the compiler crash on
> out of memory...
> 
> Also, I'm no expert, but why is my dmd limited to 1 GB memory on
> my 64 bit machine...?

If you look in win32.mak, you'll see that the source files are split into 
separate groups (STD_1_HEAVY, STD_2_HEAVY, STD_3, STD_4, etc.). This is 
specifically to combat this problem. Every time that we reach the point that 
the compilation starts running out of memory again, we add more groups and/or 
rearrange them. It's suboptimal, but I don't know what else we can do at this 
point given dmd's limitations on 32-bit Windows.

- Jonathan M Davis


More information about the Digitalmars-d mailing list