On Wednesday, 18 October 2017 at 15:39:43 UTC, Steven
Schveighoffer wrote:
On 10/18/17 1:40 AM, Tony wrote:
On Tuesday, 17 October 2017 at 13:27:24 UTC, Steven
Schveighoffer wrote:
I don't know what "allocations" represents, but reserve
actually calls gc_malloc, and the others do not (the space is
available to expand into the block). There should be only one
allocation IMO.
So there should be a bug report written for this?
It all depends on what "allocations" means. I'd wait to find
out from someone who is familiar with the GC profiling.
-Steve
I don't have a lot of clues on how the GC profiling work, but
looking at reserve() it calls mem.xmalloc() for allocations which
in fact calls GC.malloc().
Looking at the profiling for GC though:
https://github.com/dlang/dmd/blob/69567a32c5bffae5513b41e7691c91b50766b552/src/ddmd/e2ir.d#L5952
It doesn't look like there's anything for array reserve calls,
unless:
[ RTLSYM_ALLOCMEMORY, RTLSYM_TRACEALLOCMEMORY ]
are triggered from the allocations done in reserve(), but I have
no idea about that.