[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Garbage collector tuning?
From: |
Jan Wedekind |
Subject: |
Re: Garbage collector tuning? |
Date: |
Thu, 10 Sep 2015 18:07:07 +0100 (BST) |
User-agent: |
Alpine 2.11 (DEB 23 2013-08-11) |
On Thu, 10 Sep 2015, Ludovic Courtès wrote:
GC_INITIAL_HEAP_SIZE=<bytes> - Initial heap size in bytes. May speed up
process start-up.
GC_MAXIMUM_HEAP_SIZE=<bytes> - Maximum collected heap size.
GC_MARKERS=<n> - Linux w/threads and parallel marker only. Set the number
of marker threads. This is normally set to the number of
processors. It is safer to adjust GC_MARKERS than GC_NPROCS,
since GC_MARKERS has no impact on the lock implementation.
Guile also honors the ‘GC_FREE_SPACE_DIVISOR’ environment variable. See
the comments in gc.h for the meaning of this one.
HTH,
Ludo’.
Hi Ludovic,
Increasing the initial heap size already improves the performance a lot:
$ make bench
...
make[1]: Entering directory '/home/jan/test/aiscm/bench'
LD_LIBRARY_PATH=../aiscm/.libs:../bench/.libs:/usr/local/lib
GC_INITIAL_HEAP_SIZE=1G GC_USE_ENTIRE_HEAP=Y /usr/bin/guile --no-auto-compile
-L .. bench.scm
user system total
real
Guile GOOPS method dispatch 0.000110 0.000000 0.000110 (
0.000100)
Guile make empty sequence 0.000640 0.000000 0.000640 (
0.000640)
Guile allocate memory 0.000210 0.000000 0.000210 (
0.000210)
Guile negate empty sequence 0.002950 0.000080 0.003030 (
0.003020)
Guile make sequence 0.000740 0.000000 0.000740 (
0.000740)
Guile negate sequence 0.003960 0.000490 0.004450 (
0.004460)
C allocate memory 0.000080 0.000000 0.000080 (
0.000070)
C negate empty sequence 0.000050 0.000000 0.000050 (
0.000060)
C negate sequence 0.000740 0.000000 0.000740 (
0.000740)
make[1]: Leaving directory '/home/jan/test/aiscm/bench'
I'll try to understand the free space divisor later.
Many thanks
Jan