diff options
-rw-r--r-- | doc/manual/env-common.xml | 11 | ||||
-rw-r--r-- | doc/manual/installation.xml | 7 | ||||
-rw-r--r-- | doc/manual/release-notes.xml | 21 | ||||
-rw-r--r-- | src/libmain/shared.cc | 2 |
4 files changed, 40 insertions, 1 deletions
diff --git a/doc/manual/env-common.xml b/doc/manual/env-common.xml index d67ef714d0f9..99acc5949044 100644 --- a/doc/manual/env-common.xml +++ b/doc/manual/env-common.xml @@ -271,6 +271,17 @@ $ mount -o bind /mnt/otherdisk/nix /nix</screen> </varlistentry> + +<varlistentry><term><envar>GC_INITIAL_HEAP_SIZE</envar></term> + + <listitem><para>If Nix has been configured to use the Boehm garbage + collector, this variable sets the initial size of the heap in bytes. + It defaults to 384 MiB. Setting it to a low value reduces memory + consumption, but will increase runtime due to the overhead of + garbage collection.</para></listitem> + +</varlistentry> + </variablelist> diff --git a/doc/manual/installation.xml b/doc/manual/installation.xml index bc5e21f0d39a..87a6c446a2d5 100644 --- a/doc/manual/installation.xml +++ b/doc/manual/installation.xml @@ -105,6 +105,13 @@ this packages. Alternatively, if you already have it installed, you can use <command>configure</command>'s <option>--with-bzip2</option> options to point to their respective locations.</para> +<para>Nix can optionally use the <link +xlink:href="http://www.hpl.hp.com/personal/Hans_Boehm/gc/">Boehm +garbage collector</link> to reduce the evaluator’s memory consumption. +To enable it, install <literal>pkgconfig</literal> and the Boehm +garbage collector, and pass the flag <option>--enable-gc</option> to +<command>configure</command>.</para> + </section> diff --git a/doc/manual/release-notes.xml b/doc/manual/release-notes.xml index 5b1c30bf8292..1e579a37b017 100644 --- a/doc/manual/release-notes.xml +++ b/doc/manual/release-notes.xml @@ -8,6 +8,27 @@ <!--==================================================================--> +<section xml:id="ssec-relnotes-1.0"><title>Release 1.0 (TBA)</title> + +<para>This release has the following improvements:</para> + +<itemizedlist> + + <listitem> + <para>Nix can now optionally use the Boehm garbage collector. + This significantly reduces the Nix evaluator’s memory footprint, + especially when evaluating large NixOS system configurations. It + can be enabled using the <option>--enable-gc</option> configure + option.</para> + </listitem> + +</itemizedlist> + +</section> + + +<!--==================================================================--> + <section xml:id="ssec-relnotes-0.16"><title>Release 0.16 (August 17, 2010)</title> <para>This release has the following improvements:</para> diff --git a/src/libmain/shared.cc b/src/libmain/shared.cc index 82309544a62d..29fc13e33627 100644 --- a/src/libmain/shared.cc +++ b/src/libmain/shared.cc @@ -364,7 +364,7 @@ int main(int argc, char * * argv) allocated. This might be a problem on systems that don't overcommit. */ if (!getenv("GC_INITIAL_HEAP_SIZE")) - GC_expand_hp(384000000); + GC_expand_hp(384 * 1024 * 1024); #endif try { |