chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] nursery


From: Felix Winkelmann
Subject: Re: [Chicken-users] nursery
Date: Fri, 28 Feb 2003 09:09:39 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0.0) Gecko/20020530

Joerg F. Wittenberger wrote:
Hi,

I'm afraid I have an imperfect idea, what the "nursery" actually is.
I'd appreciate if there was a little reference in the documentation.

Ok.
(The nursery is the first heap-generation in the used generational
garbage collection scheme. Objects are allocated inside the nursery,
and when it's full, live objects are copied into the second
heap generation. As long as that second one isn't filled up we
can deley a full GC. Chicken uses the C-stack as it's nursery,
which makes allocation extremely efficient.)


Otherwise the nursery size seems to have a performace impact, at least
there's a benchmark when the optimal nursery size is determined.

As I can see from the Makefile, I can provide an explicit nursery
size.  This solves the problem at hand: on the same machine I have
different nursery sizes each compile - hardly a basis for benchmarking
different implementation strategies.

But how do I justify the choice of any nursery size, if I want to
provide a binary package?


Trial-and-error, I'm afraid. It's dependent on the code generated by
the C compiler and by cache size.

Here the numbers for the machines I have available:

P2/350 (Linux):         12k (*)
P1/166 (FreeBSD):       16k
P4/1400 (Linux):        128k
Athlon/1400 (Windows):  64k

I would be interested what others have, expecially for more
exotic hardware.

(* on the same machine, on Windows with MSC 5.0, 300k turned
out be good. It really depends a lot on the C compiler)

For distributing binaries, one could run a benchmark at installation
time and pass the proper setting as a command-line option.


cheers,
felix





reply via email to

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