add a changelog and update the document for ORC (#20415)
* add a changelog and update the document for ORC * hone * back * Apply suggestions from code review Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com> * Update doc/mm.md Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com> * Update doc/mm.md Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com> Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
This commit is contained in:
parent
40dae8c731
commit
b213913dcb
3 changed files with 12 additions and 11 deletions
17
doc/mm.md
17
doc/mm.md
|
|
@ -28,10 +28,10 @@ To choose the memory management strategy use the `--mm:` switch.
|
|||
ARC/ORC
|
||||
-------
|
||||
|
||||
`--mm:orc` is a memory management mode primarily based on reference counting. Cycles
|
||||
in the object graph are handled by a "cycle collector" which is based on "trial deletion".
|
||||
Since algorithms based on "tracing" are not used, the runtime behavior is oblivious to
|
||||
the involved heap sizes.
|
||||
ORC is the default memory management strategy. It is a memory
|
||||
management mode primarily based on reference counting. Reference cycles are
|
||||
handled by a cycle collection mechanism based on "trial deletion".
|
||||
Since algorithms based on "tracing" are not used, the runtime behavior is oblivious to the involved heap and stack sizes.
|
||||
|
||||
The reference counting operations (= "RC ops") do not use atomic instructions and do not have to --
|
||||
instead entire subgraphs are *moved* between threads. The Nim compiler also aggressively
|
||||
|
|
@ -57,12 +57,11 @@ and leaks memory with `--mm:arc`, in other words, for `async` you need to use `-
|
|||
Other MM modes
|
||||
--------------
|
||||
|
||||
.. note:: The default `refc` GC is incremental, thread-local and not "stop-the-world".
|
||||
.. note:: The `refc` GC is incremental, thread-local and not "stop-the-world".
|
||||
|
||||
--mm:refc This is the default memory management strategy. It's a
|
||||
deferred reference counting based garbage collector
|
||||
with a simple Mark&Sweep backup GC in order to collect cycles. Heaps are thread-local.
|
||||
[This document](refc.html) contains further information.
|
||||
--mm:refc It's a deferred reference counting based garbage collector
|
||||
with a simple Mark&Sweep backup GC in order to collect cycles.
|
||||
Heaps are thread-local. [This document](refc.html) contains further information.
|
||||
--mm:markAndSweep Simple Mark-And-Sweep based garbage collector.
|
||||
Heaps are thread-local.
|
||||
--mm:boehm Boehm based garbage collector, it offers a shared heap.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue