[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: GC
From: |
Dave Love |
Subject: |
Re: GC |
Date: |
Fri, 07 May 2004 18:42:06 +0100 |
User-agent: |
Gnus/5.1002 (Gnus v5.10.2) Emacs/21.2 (gnu/linux) |
Stefan Monnier <address@hidden> writes:
> I only know how to specify alignment of static data on GCC, so USE_LSB_TAG
> currently only works with GCC.
You typically need a pragma with other compilers, although the Compaq
compiler has `__align', for instance. (I know about the issues with
#pragma; I seem to remember that was addressed in C99, but I don't
have the spec.)
> That's not a great advertisement, now is it?
> I understand how you feel, but the patch is pretty large and is non-working,
> so it takes a fair bit of effort for anyone to come and help you.
As far as I know, the only things that are non-working about it are
weak hash tables (unused, I think) and collecting marker chains
without crashing. The latter was what I wanted help with since I was
fairly sure I was missing something fairly obvious and
straightforward.
You could measure in batch, when markers probably aren't an issue, but
that's not what I was interested in.
> That's what I would expect as well, but since Emacs's current GC is only
> conservative w.r.t. stack scanning and has distinct allocation methods for
> various types of data, Boehm's GC is likely to have a different "performance
> envelope".
Yes, like being less likely to thrash my machine collecting... How
might the Emacs allocation be better than what you can do with Boehm?
> What is still missing is concrete data about our particular case.
Yes, but the issue is actual interactive use, especially with little
free memory, and I don't think it's reasonable to try to measure
anything while leaking markers at a considerable rate. (I can't
remember why they get allocated as frequently as they do.)
> Right, with USE_LSB_TAG several things might have to be done differently
> (the off-by-one trick for marker chains springs to mind).
That isn't a trick I missed that would account for the crashes when I
tried to collect them, I wonder? I can't remember enough about it.
> So I'm interested in knowing why you did things the way you did to know
> what changes might be needed, what simplifications could be made.
In what respect? If I remember correctly, I mainly had to get Boehm
to add a feature allowing high-order tags, then abstract some of the
allocation of things like markers, and conditionalize out a lot of
alloc.c. There would have been significant work in tidying it all up.