June 21, 2023 [Issue 24006] New: Document locking behavior of the default GC | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=24006 Issue ID: 24006 Summary: Document locking behavior of the default GC Product: D Version: D2 Hardware: x86 OS: All Status: NEW Severity: enhancement Priority: P1 Component: dlang.org Assignee: nobody@puremagic.com Reporter: andrej.mitrovich@gmail.com As Steven mentions here: https://forum.dlang.org/post/u6tgl4$1v07$1@digitalmars.com > The D GC has a single global lock to allocate memory -- even memory that might be on a free list. So the threads are all bottlenecked on waiting their turn for the lock. This behavior isn't documented on https://dlang.org/spec/garbage.html But it is mentioned in passing on this page: https://dlang.org/articles/d-array-article.html#caching Specifically "Doing this means an O(lg(n)) lookup in the GC's memory pool for every append (not to mention acquiring the global GC lock)." -- |
Copyright © 1999-2021 by the D Language Foundation