On 03/12/2018 16:02, Claes Redestad wrote:
Hi,
initializing java.util.jar.Attributes.Name.<clinit> executes ~20k
bytecodes setting up and eagerly calculating case-insensitive hash
codes for a slew of Name objects.
By archiving the resulting set of Names and initializing public
constants from the archived map, we reduce time spent starting up
(Name.<clinit> drops to 368 executed bytecodes) and improve the
footprint sharing effect of using CDS:
http://cr.openjdk.java.net/~redestad/8214712/jdk.00/
Testing: tier1-2 running
Verified a 1-2.5ms startup improvement on java -jar Hello.jar
- significant and stable reduction in instruction count, branches and
branch misses
- only adds ~1.1Kb to the dumped CDS archive
This looks okay to me but the changes remind me that there are several
attributes name in KNOWN_NAMES are should probably be removed as they
aren't defined by Java SE or the JDK.
-Alan