summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorBen Gamari <ben@well-typed.com>2019-02-05 00:10:43 -0500
committerBen Gamari <ben@smart-cactus.org>2019-10-20 21:15:37 -0400
commit6ff29c064dc042855a0a9a7ebe2cfac55edf17f3 (patch)
treeee99c710d467d0d9bed375e21226b6a79807cad9 /docs
parent04471c4f9037065c274736a3693cba116db7bcb9 (diff)
downloadhaskell-6ff29c064dc042855a0a9a7ebe2cfac55edf17f3.tar.gz
rts: Introduce flag to enable the nonmoving old generation
This flag will enable the use of a non-moving oldest generation.
Diffstat (limited to 'docs')
-rw-r--r--docs/users_guide/runtime_control.rst18
1 files changed, 18 insertions, 0 deletions
diff --git a/docs/users_guide/runtime_control.rst b/docs/users_guide/runtime_control.rst
index 665c8c08e0..add0b6c537 100644
--- a/docs/users_guide/runtime_control.rst
+++ b/docs/users_guide/runtime_control.rst
@@ -313,6 +313,24 @@ collection. Hopefully, you won't need any of these in normal operation,
but there are several things that can be tweaked for maximum
performance.
+.. rts-flag:: -xn
+
+ :default: off
+ :since: 8.8.1
+
+ .. index::
+ single: concurrent mark and sweep
+
+ Enable the concurrent mark-and-sweep garbage collector for old generation
+ collectors. Typically GHC uses a stop-the-world copying garbage collector
+ for all generations. This can cause long pauses in execution during major
+ garbage collections. :rts-flag:`-xn` enables the use of a concurrent
+ mark-and-sweep garbage collector for oldest generation collections.
+ Under this collection strategy oldest-generation garbage collection
+ can proceed concurrently with mutation.
+
+ Note that :rts-flag:`-xn` cannot be used with ``-G1`` nor :rts-flag:`-c`.
+
.. rts-flag:: -A ⟨size⟩
:default: 1MB