Alan, the changes look good and glad you added the extra comments for clarity.
Best Lance On Feb 21, 2013, at 9:33 AM, Alan Bateman wrote: > > This one is a startup-time regression caused by the compact profiles work. > > As background, there was a lot of work done in the distant past on startup > performance. Amongst the startup improvements was to the code that checks for > the Class-Path attribute when opening JAR files so that it skips checking of > known JAR files (in the JDK) and in addition do a quick search of the > manifest to avoid parsing it when not present. These optimizations were > disrupted by the profiles work so the change here is to fix this regression > to get startup performance back to where it was previously. > > The changes are very simple, it just extends the implementation to check for > the Profile attribute in the same way that we've always checked the > Class-Path attribute. I've also refreshed the list of "known" JAR files as > that has been stale for some time. The changes do mean the manifest bytes are > searched twice and it might benefit from using a multi-pattern search and > that it something for another day. So far, at least in the startup tests that > I've run, it doesn't make any observable difference and startup performance > is back to where it was. > > The webrev with the changes is here. I should point out that this is against > jdk8/build as the changes aren't in jdk8/tl at this time. > > http://cr.openjdk.java.net/~alanb/8008290/webrev/ > > Finally, I should explain that the goal here is simply to get startup back to > where it was. There is clearly other clean-up that should be done on this > code at some point. > > Thanks, > Alan.
Lance Andersen| Principal Member of Technical Staff | +1.781.442.2037 Oracle Java Engineering 1 Network Drive Burlington, MA 01803 lance.ander...@oracle.com