From: Marko Rauhamaa <marko@pacujo.net>
To: Linas Vepstas <linasvepstas@gmail.com>
Cc: "guile-user@gnu.org" <guile-user@gnu.org>
Subject: Re: out-of-control GC
Date: Sun, 10 Sep 2017 23:36:20 +0300 [thread overview]
Message-ID: <87shfuqojf.fsf@elektro.pacujo.net> (raw)
In-Reply-To: <CAHrUA34t6LKoLT3LNT3sHR5RBdh9DJ9u0afDrPHEQzn86i2dcQ@mail.gmail.com> (Linas Vepstas's message of "Sun, 10 Sep 2017 15:23:19 -0500")
Linas Vepstas <linasvepstas@gmail.com>:
> which suggests that the vast majority of time is spent in GC, and not
> in either scheme/guile, or my wrapped c++ code.
That may well be normal.
> 4 gc's/minute means one every 15 seconds, which sounds reasonable,
> except that RAM usage is so huge, that each GC takes many seconds to
> complete.
That may or may not be normal. However, it should not be a function of
how much RAM has been allocated ourside Guile's heap.
> Anyway, this demo gives a scenario where gc seems to run too often.
How often is too often? I would imagine the objective is to minimize the
stop-the-world periods. IOW, you usually want the program to run very
steadily.
> I have other scenarios where it does not run often enough -- I have
> one where the working set is about 200MBytes, but guile happily grows
> to 10GB or 20GB RAM over a few hours.
You mean the size of Guile's heap? That seems pathological. Maybe there
are lots of values in your data that accidentally look like heap
addresses.
> My solution for that other case is to manually GC whenever gc-stats
> gets above 1GB, because I know a priori my working set is smaller than
> that.
>
> The overall message seems to be that gc either runs too often, or not
> often enough. Some sort of better planning is needed.
>
> I'm motivated to explore this, as it actually impacts my work.
Absolutely, although as an application programmer you should be able to
trust that GC just works.
Marko
next prev parent reply other threads:[~2017-09-10 20:36 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-09 19:47 out-of-control GC Linas Vepstas
2017-09-10 4:14 ` Linas Vepstas
2017-09-10 16:50 ` Arne Babenhauserheide
2017-09-10 18:03 ` David Kastrup
2017-09-10 20:23 ` Linas Vepstas
2017-09-10 20:36 ` Marko Rauhamaa [this message]
2017-09-10 21:47 ` Linas Vepstas
2017-09-10 22:38 ` Marko Rauhamaa
2017-09-11 16:17 ` Arne Babenhauserheide
2017-09-14 18:31 ` Linas Vepstas
2017-09-14 18:58 ` Marko Rauhamaa
2017-09-14 20:15 ` Linas Vepstas
2017-09-14 20:36 ` David Kastrup
2017-09-14 20:45 ` Arne Babenhauserheide
2017-09-11 8:22 ` tomas
2017-09-14 20:19 ` Linas Vepstas
2017-09-13 17:13 ` David Kastrup
2017-09-10 22:17 ` Arne Babenhauserheide
2017-09-10 22:36 ` Arne Babenhauserheide
2017-09-14 7:44 ` Mark H Weaver
2017-09-10 16:53 ` Arne Babenhauserheide
2017-09-13 2:24 ` Mark H Weaver
2017-09-13 19:38 ` Arne Babenhauserheide
2017-09-13 19:57 ` David Kastrup
2017-09-13 20:37 ` Arne Babenhauserheide
2017-09-14 19:14 ` Linas Vepstas
2017-09-11 18:13 ` Hans Åberg
-- strict thread matches above, loose matches on Subject: below --
2017-09-11 7:42 Kjetil Matheussen
2017-09-14 18:41 ` Linas Vepstas
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=87shfuqojf.fsf@elektro.pacujo.net \
--to=marko@pacujo.net \
--cc=guile-user@gnu.org \
--cc=linasvepstas@gmail.com \
/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).