On 1/29/20 2:48 PM, cc wrote:
Given the sample program at https://pastebin.com/u9sSNtj7
I'm experiencing GC allocations with every call to std.concurrency.send
when sending larger messages (e.g. multiple ulongs). These do not occur
when sending uints in comparison, in the provided example.
For example, when the ManyAllocations version is set, I see results like:
allocations: 100 bytes: 3280
When commented out, I see:
allocations: 1 bytes: 80
Is there a way to mitigate this memory usage?
Using DMD32 D Compiler v2.089.1-dirty on Windows 10 x64
cmdline: rdmd.exe -m64
I'm pretty sure std.concurrency uses Variant to pass message data, which
boxes when it gets over a certain size. You are probably crossing that
threshold.
The allocations should level out eventually when the GC starts
collecting them.
-Steve