Re: GC-intensive benchmarks in Scheme

Basile Starynkevitch <[email protected]>
Newsgroups gmane.lisp.guile.user
Message-ID <[email protected]>
On Fri, 2025-02-21 at 09:23 +0100, Sven Hartrumpf wrote:
> Dear Guile users.
> 
> I am looking for GC-oriented benchmarks, preferably portable Scheme code.
> 
> Why am I asking?
> I am investigating a regression in GC time (bdw-gc) for many days,
> but my application seems to be too complex for me to unterstand the cause:-)
> Hence I am looking for simpler code that can reproduce the issue.
> Currently in my (too complex) "benchmark" application,
> the GC collects 70 GB collected in 200 collections.
> The simple benchmark(s) I am looking for can be smaller, but not too much.
> 
> It seems to be caused by stepping from gcc-11 (or older) to gcc-12 (or newer),
> but only for the x32 ABI - https://en.wikipedia.org/wiki/X32_ABI - so far.


A possibility might be to switch to another GC or another Scheme implementation.

Are you aware of the Qish GC on http://starynkevitch.net/basile/qishintro.html
or the Bigloo Scheme implementation on https://www-sop.inria.fr/indes/fp/Bigloo/
or the MPS garbage collector on https://github.com/Ravenbrook/mps and
https://www.ravenbrook.com/project/mps/
or https://pages.lip6.fr/Christian.Queinnec/WWW/LiSP.html
or https://github.com/pahihu/libscheme

BTW the GCC compiler itself (it current version is GCC-14) has a garbage
collector inside it:https://gcc.gnu.org/wiki/gengtype
https://arxiv.org/abs/1109.0779
and the C++ code (GPL licensed) on https://github.com/RefPerSys/RefPerSys/
contains a GC and could be extended to become a Scheme implementation 

regards


-- 
Basile STARYNKEVITCH           <[email protected]>
8 rue de la Faïencerie
92340 Bourg-la-Reine,          France
http://starynkevitch.net/Basile & https://github.com/bstarynk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.