This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: Page faults and libgcj.so startup time
- To: Jeff Sturm <jsturm at one-point dot com>
- Subject: Re: Page faults and libgcj.so startup time
- From: Tom Tromey <tromey at redhat dot com>
- Date: 13 Apr 2001 00:12:29 -0600
- Cc: Bryce McKinlay <bryce at albatross dot co dot nz>, java at gcc dot gnu dot org
- References: <Pine.LNX.4.10.10104031751140.6545-100000@mars.deadcafe.org>
- Reply-To: tromey at redhat dot com
>>>>> "Jeff" == Jeff Sturm <jsturm@one-point.com> writes:
Jeff> libgcj libstdc++ libc
Jeff> R_386_32 27006 1085 146
Jeff> The first of these, R_386_32, is occupied by vtbl entries.
Is this just vtbl entries or does it include other method pointers?
We could reduce this number by changing the `ncode' field in
_Jv_Method to `union { int, void * }' and then initializing it to an
integer vtable offset for virtual functions.
That would mean special cases in a number of places (easily handled by
a method on _Jv_Method) and it would mean that reflection stuff would
be a tiny bit slower.
I don't know whether this is really a win. It just occurred to me so
I thought I'd mention it. It feels like a hack, but OTOH if this is a
real performance problem then it might be appropriate.
Another even uglier idea would be to have all the Utf8Consts and other
static data for a class be written as one big chunk of data, and then
use offsets into that structure in various places. This would reduce
the number of data relocations to one per class. This would require
changes all over.
Tom