harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Dmitriev" <sergey.v.dmitr...@gmail.com>
Subject The way to increase the SPECjAppServer2004 score by 20%
Date Mon, 22 Oct 2007 11:39:16 GMT

This letter is actually about HARMONY-4965, I just changed a little
bit a subject. :)

During my play with SPECjAppServer2004 on OC4J I've found out that we
have a way to optimize the class loader. Or in other words currently

Lets say we have class loaders CL1 and CL2, and CL2.getParent() ==
CL1. And lets say we have a class C which is loaded by the CL1 (the
parent one). And then we try to load class via the class loader CL2:
of course CL2 first of all tries to load it via its parent CL1 and
succeed in it. When we try to load class C via CL2 again we will have
the same chain of calls: CL2 -> CL1. But if CL2 have support of
caching of classes loaded by not itself - the chain can become much
shorter - it could end at CL2.findFinishedClass().

For example RI behaves like this. See JIRA's demo.

Back to the SPECjAppServer2004 @ OC4J. In this case we have a deeper
chain: we have a concrete class which is been searched so deep that we
looking for this class in boot strap class path. And this is what we
have in steady state of the benchmark. Don't you think it is useless?

Talking about numbers: my measurements show that we can take up to 20%
of burst having this bug fixed. Could some competent guy take a look
into this?


View raw message