Rewriting byte codes
Erik Corry
erik at arbat.com
Mon Apr 1 00:20:18 PST 2002
On Sun, Mar 31, 2002 at 08:41:34PM -0700, Patrick Tullmann wrote:
> Erik wrote:
> > I'd like to make some changes to Kaffe to make it simpler to do more
> > precise GC.
>
> Just for reference, so everyone's on the same page, Kaffe already does
> precise walking of Java objects (see gcFuncs.c:walkObject()). It does
> not precisely walk stacks. I believe it walks many native objects
> (like jthreads, etc) conservatively.
>
> The big problem with walking the stack isn't the Java stack as much as
> the native stack. You could walk the Java parts precisely, and the
> native bits conservatively, but I don't know what you'd win anything
> by doing this.
OK, I'm not so familiar with the way Java interacts with
native code, but why do we need to walk the native bits at
all? Surely C code doesn't need GC?
> As I understand GC trade-offs, the big win for precise GC is the
> ability to update pointers and thus implement a compacting collector.
> Is there something else you're hoping to get out of precise stack
> walking?
Predictability and speed of GC.
> Another approach to consider is to implement GC-safe points (e.g., on
> method calls and backwards branches in Java code). Then you only have
> to track and update the stack maps at each safe point,
There's a lot to be said for this, but since you can allocate
unlimited memory in an exception handler, every point that can
throw an exception has to be a safe point, which reduces the
appeal.
--
Erik Corry erik at arbat.com
Citér kun det nødvendige. Slet denne signature. Svar under det citerede.
More information about the kaffe
mailing list