This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: I'm new and wanting to help!


Tom Tromey writes:
 > >>>>> "Jon" == Jonathan Herriott <herriojr@gmail.com> writes:
 > 
 > Jon> I do not have anything specific in mind as of yet for improvements.  I
 > Jon> am willing to help with the tree optimizers, so I will download the
 > Jon> source and start dissecting it.  I just need to get a better idea of
 > Jon> how it currently works and how we want it to work.
 > 
 > Jon> In the mean time, is there anything specific you would like me to do?
 > 
 > I'm a bit afraid to scare you off by posting the whole to-do list :)
 > But, some of these ideas are relatively gentle introductions; other
 > ones are quite hairy.
 > 
 > I think the major thing we're interested in compiler-wise is
 > performance (we've got a pretty good handle on the 1.5 features, which
 > seems to be the other major area).
 > 
 > There's a lot we don't know about performance.  So one place to start
 > would be to find things out... e.g., when Andrew looked at jonas (I
 > think) he found that the number one problem was the GC, and that by
 > reducing the number of GC roots we could dramatically improve scanning
 > performance.

GC was a tie with stack unwinding.  The total execution time was 1/3
gc, 1/3 unwinding, and 1/3 the rest of the program execution.  Most of
the program execution time was spent in libgcj: only about 10% or so
was the actual application code.

I recently committed a change to gcj that added
maybe_rewrite_invocation() to expr.c.  This takes a list of rewrite
rules, so that

Class.getClassLoader() is rewritten to Class.getClassLoader(Class caller)

This means that we don't need to unwind the stack to find our caller
in Class.getClassLoader().  It would be a great initial job to find
some of the other places we unwind to find our caller (Logger springs
immediately to mind) and add those to maybe_rewrite_invocation().

Andrew.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]