SAOC Experience Report: Porting a fork-based GC

a11e99z black80 at bk.ru
Mon Jul 22 15:58:08 UTC 2019


On Monday, 22 July 2019 at 14:03:15 UTC, Mike Parker wrote:
> Francesco Mecca ha written an experience report for the D Blog 
> about his SAOC 2018 project, porting Leandro Lucarella's old GC 
> from D1 to D2.
>
> The blog:
> https://dlang.org/blog/wp-admin/post.php?post=2148&action=edit
>
> Reddit:
> https://www.reddit.com/r/programming/comments/cgdk1r/symmetry_autumn_of_code_experience_report_porting/

interesting idea do Mark phase through fork process.

I want more technical details:
- about Windows: will such idea work on Windows? does Windows 
support similar technique? 
(VirtualQueryEx/ReadProcessMemory/mmap/or_something)
- can GC-process run full time and just exchange with parent 
process about changes in memory configuration? or GC-process can 
not to see changes in parent process after fork? I mean 
GC-process can see snapshots of parent-process memory in realtime 
when it has just readonly-access.
- does GC-process uses some AA for building graph of objects or 
set Mark-bits in situ? in last case COW makes copies so memory 
differs and GC-process should be forked every GC-cycle.
- digits in PR benchmark scary me: max pause 969ms or 260ms. why 
not to use Golang-GC? Go-GC is non-compacting/non-moving GC that 
has STW(stop the world) ~10ms and Google can spend money to build 
best GC that can help to D-users too.



More information about the Digitalmars-d-announce mailing list