www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - gcopt=fork:1

reply =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
Have you tried this new GC option which seems to solve the 
stop-the-world issue:

   https://dlang.org/changelog/2.098.0.html#forkgc

Any experience?

Ali
Mar 01 2022
parent reply Anonymouse <zorael gmail.com> writes:
On Tuesday, 1 March 2022 at 21:32:07 UTC, Ali Çehreli wrote:
 Have you tried this new GC option which seems to solve the 
 stop-the-world issue:

   https://dlang.org/changelog/2.098.0.html#forkgc

 Any experience?

 Ali
It didn't work well for me; the process hung in `__memcpy_avx_unaligned_erms` when profiling under valgrind/callgrind, during the first collection. I tried and failed to reproduce it with a minimal example, so I didn't file an issue.
Mar 02 2022
parent =?UTF-8?Q?Ali_=c3=87ehreli?= <acehreli yahoo.com> writes:
On 3/2/22 07:11, Anonymouse wrote:

 It didn't work well for me; the process hung in
 `__memcpy_avx_unaligned_erms` when profiling under valgrind/callgrind,
 during the first collection.
And it showed worse pause performance in a micro-benchmark program that I wrote that ran only for 10 seconds. But perhaps that worse pause was only on one of the threads so maybe I was better overall. (?) Before getting to conclusions, does anyone have a GC benchmark program that demonstrates issues with D's GC? I am thinking, a separate driver program can pipeProcess() the benchmark program and measure pipe interaction latency. However, I am not convinced the benchmark program I wrote causes long pauses: The GC profiler reports 6ms (or so) pauses at most. Can we write a program that puts the blame on D's GC. Thank you, Ali
Mar 02 2022