unofficial mirror of guile-user@gnu.org 
 help / color / mirror / Atom feed
From: Jan Wedekind <jan@wedesoft.de>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guile-user@gnu.org
Subject: Re: Garbage collector tuning?
Date: Thu, 10 Sep 2015 18:07:07 +0100 (BST)	[thread overview]
Message-ID: <alpine.DEB.2.11.1509101802380.16362@wedemob> (raw)
In-Reply-To: <87fv2m5rly.fsf@gnu.org>

[-- Attachment #1: Type: TEXT/PLAIN, Size: 2051 bytes --]

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

  parent reply	other threads:[~2015-09-10 17:07 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-10  6:46 Garbage collector tuning? Jan Wedekind
2015-09-10 13:30 ` Ludovic Courtès
2015-09-10 15:51   ` Stefan Israelsson Tampe
2015-09-10 16:33   ` Jan Wedekind
2015-09-10 17:07   ` Jan Wedekind [this message]
2015-09-10 17:54     ` David Pirotte
2015-09-10 21:37       ` Jan Wedekind

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/guile/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.11.1509101802380.16362@wedemob \
    --to=jan@wedesoft.de \
    --cc=guile-user@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).