Hi Jiangli,

Thanks for the review. Please see comments in-line:

On 10/21/14, 2:04 PM, Jiangli Zhou wrote:
Hi Ioi,

Here are some comments from me:

-src/share/vm/classfile/classLoader.cpp
In ClassLoader::setup_search_path, if canonicalize is true it's not necessary to allocate the 'path' and copy the 'class_path' to 'path'.

we need to allocate path[] because we need to copy only a part of the classpath[] into it. E.g.

    classpath[] = "foo.jar:bar.jar"
    path[] = "foo.jar"  <- need to be zero-terminated
-src/share/vm/memory/metadataFactory.hpp
In free_array, is it possible to disable it only when PrintSharedSpaces is enabled, instead of disabling it for all?

I am not sure. For safety, I have filed a bug and will fix that separately: https://bugs.openjdk.java.net/browse/JDK-8062016
-jdk/src/share/native/sun/misc/URLClassPath.c
Is verifying class name needed in Java_sun_misc_URLClassPath_knownToNotExist0? The class name will be verified when the class loader loads the class.

I coped the code from Java_java_lang_ClassLoader_findBootstrapClass. VerifyFixClassname is needed, as it translate "." -> "/". I am not sure if VerifyClassname is needed, but I guess it doesn't hurt.

-jdk/src/share/classes/sun/misc/URLClassPath.java
Can lookupCacheEnabled flag change during runtime? In getLookupCache() the flag is checked more than once.

Yes, it can change if disableAllLookupCaches() is called in the middle of getLookupCache(). I have added more comments in the new webrev. Please take a look to see if it makes sense.

http://cr.openjdk.java.net/~iklam/8061651-lookup-index-open-v2/

Thanks
- Ioi
Thanks,
Jiangli

On 10/21/2014 10:27 AM, Ioi Lam wrote:
Please review this fix:

http://cr.openjdk.java.net/~iklam/8061651-lookup-index-open-v1/

Bug: Add an interface to the JVM's Class/Resource Lookup Index Cache for improving sun.misc.URLClassPath search time

    https://bugs.openjdk.java.net/browse/JDK-8061651

Summary of fix:

    Some J2EE environments have lots of JAR files in the
    classpath. However, during run-time, most classes are loaded by
    custom classloaders which delegate to the system loader. As a
    result, each class loaded by a custom classloader will cause many
    JAR search failures (in sun.misc.URLClassPath).

    To limit the number of searches in URLClassPath, the 8uX HotSpot
    VM is going to include a Class/Resource Lookup Index Cache that
    records information about the class/resource entries in the JAR
    files in the classpath. This can be used to improve
    sun.misc.URLClassPath search time.

    This is part 1 of the REF -- we are adding appropriate interfaces
    in both the JDK code and the HotSpot code to access this cache.

    URLClassPath.java is modified to use JNI to call into the HotSpot
    JVM_XXX APIs to access the cache.

    The implementation of this cache is done in part 2 of this RFE.

    Note that this enhancement is for JDK 8uX only. In JDK9 and
    beyond, we are considering an alternative implementation where the
    cache is maintained in the core libs code, outside of HotSpot.

Tests:

    JPRT
    Adhoc SQE tests

Thanks
- Ioi


Reply via email to