April 21
I'm trying to GC profile serve-d which uses a lot of fibers potentially also across some threads and some threads doing some dedicated work, however -profile=gc doesn't seem to work properly. It logs `shared static this` calls and some methods, however none of the actual stuff is in there (and the total bytes allocated is way too small)

Here is the profilegc.log for reference: https://wfr.moe/feshNx/profilegc.log

When I call GC.stats I can see that it eventually has around 20 MB allocated using the GC and I can also see in the resource monitor that it keeps allocating properly when using stuff

Also all the places where I would expect a GC allocation don't show anything in the profilegc.log then (like array modifications and just "new" in code that is definitely called)

In a simple minimal test case I can't seem to reproduce this behavior. Is there any way to check why it isn't profiling properly?

OS: Linux, DMD 2.085.1 (also reproducible by someone else)
Project: https://github.com/Pure-D/serve-d (run via code-d in vscode)
2 days ago
On Sunday, 21 April 2019 at 16:20:51 UTC, WebFreak001 wrote:
> I'm trying to GC profile serve-d which uses a lot of fibers potentially also across some threads and some threads doing some dedicated work, however -profile=gc doesn't seem to work properly. It logs `shared static this` calls and some methods, however none of the actual stuff is in there (and the total bytes allocated is way too small)
>
> [...]

I don't know a fix. On my macOS computer, I close serve-d thread when it's using too much CPU, I also knock off spindump for the same reason.