guile-user
[Top][All Lists]
Advanced

[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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]