----- Original Message -----
From: "James Mastros" <[EMAIL PROTECTED]>
To: "Dan Sugalski" <[EMAIL PROTECTED]>
Cc: "Benoit Cerrina" <[EMAIL PROTECTED]>; "Uri Guttman"
<[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>;
<[EMAIL PROTECTED]>
Sent: Monday, November 05, 2001 12:03 AM
Subject: Re: vmem memory manager


> On Sun, Nov 04, 2001 at 01:47:44PM -0500, Dan Sugalski wrote:
> > I've not made any promises as to what type of GC system we'll use. I'm
> > gearing things towards a copying collector, but I'm also trying to make
> > sure we don't lock ourselves out of a generational scheme.
> I'd really like to hear that you were planning on not locking us out of
> /any/ scheme.  I'd like to see a lot of pluggablity here, so we can get
> custom solutions for those needing multiprocessor, huge memory optimized
> schemes, and with tiny machines with poor processors, or on a handheld
with
> tiny memory.  Hell, even segmented memory, if they're really brave.
>
> > I know things are a little fuzzy in the GC arena, but that's on purpose
for
> > the moment.
> Hell.  I've got very, very little knowlage about gc.  But I'd love to see
> the GC pluggable to the point where different modules can have different
> GCs... but I don't think it's reasonably possible.
This is very important since in the GC world one size does not fit all, you
can have either a very efficient algorythm which will 'stop the world' and
collect everything but it may appear as if your program stops from time to
time... This is bad for all interactive or real time apps but good for
batches.  You may also have 'incremental' or 'real time' collector which
only stop the mutator (the program) for a small and/or bounded time, those
are better for the above apps but they loose in efficiency (they take more
space and time). You also have concurrent collectors which are ideal for
multiprocessors but take a penalty hit which is unacceptable for single
processor systems.  I think that the only good solution is one where one may
choose its collector at the time the app is launched.  This is also what
java does, with sun's jdk (and probably with others) at launch time command
line args let you choose between an efficient stop the world and collect
algo, an incremental algorythm (the train algorythm
(http://www.daimi.au.dk/~beta/Papers/Train/train.html) or a concurrent
algorythm (don't know the algo used)
Benoit

>
> Without doubt, there should be a way for parrot code to modify the
> properties of the GC, like the frequency of calling, and to specify "run
the
> GC now".
>
>    -=- James Mastros

Reply via email to