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