On 5/24/17 6:34 AM, Moritz Maxeiner wrote:
On Wednesday, 24 May 2017 at 07:54:04 UTC, Wulfklaue wrote:
Great ... accidentally pressed send.

So my question was:

Why does even a simple empty empty statement like this, compiled with
DMD, show under windows a almost 1.7MB memory usage?

Because the garbage collector (GC) allocates a sizable chunk of memory
from the operating system at program startup, from which it then in turn
allocates memory for you when you use things like dynamic closures, `new
XYZ`, etc.

Note, you can usually allocate close to the entire address space, but if you never access it, it's not actually used in the RAM of your computer. So it's possible D is pre-allocating a bunch of space from the OS, but it's not actually consuming RAM.

However, I don't know the true answer. It may actually be 1.7MB of "bookeeping", but I doubt that. The GC structures aren't *that* large, I'd expect at most 10 pages for the small-chunk bins, and a few more for bits. Possibly the static segment is large, but 1.7 MB is around 400+ pages. It's likely that most of that is just a pre-allocation of a large continuous space "just in case", but it's not actually wired to RAM yet.

-Steve

Reply via email to