[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Oct 14 10:25:49 1993 
Subject:Re: Threaded Interpreted Languages 
From:Steve Knight 
Volume-ID:931015.06 

This post continues the GC thread, taking up on Helen's
points.

> My experience is that the performance penalty is not all one suffers 
> with automatic garbage collection in POPLOG.

It is unclear why there is any suspicion of a performance penalty
associated with GC in POPLOG.  My own benchmarks leads me to the
exact opposite conclusion.  It might be worth exploring the task
area in more detail to see where the problem lies.

> POPLOG may well collect up garbage and free the memory for 
> it's own use, but it does not appear to be very altruistic with 
> respect to other processes running on the machine. When making a 
> garbage collection, POPLOG actually INCREASES the total amount of 
> memory it is using, so forcing other processes running on the machine 
> into an "out of swap space" situation and crashing them.

Firstly, Helen is clearly using a broken operating system, which
confuses the issue.  Secondly, it is peculiar that POPLOG isn't
using the non-copying garbage collector in this tight memory
situation.  Perhaps this is an early version of POPLOG that
doesn't support pop_gc_copy?

> Further to this; I have found that POPLOG's own behaviour 
> becomes somewhat unpredictable and irrational when swap 
> space runs low, with a distinct tendency for conditional branches 
> to default to the else path regardless of the evaluation 
> performed, and without signalling any error.

This sounds like a defective POPLOG executable image or, possibly,
a fault in the OS.  In either case, I have never observed this
behaviour.  Without doubt this situation should be reported to
the dev. team.


Finally, Helen pleads:
> Allowing the programmer to manage the utilisation of resources 
> herself, can save an awful lot of heartache!

Well, one is free to do so.  It takes about 2 hours to implement
the equivalent of malloc and free for the common datatypes --
although you need to reimplement arrays -- and this is usually
enough.  Garbage free programming is easy in POPLOG, provided
you're drunk enough and (therefore) can stand the tedium.

Steve