Print this page
rev 6864 : 8061651: Interface to the Lookup Index Cache to improve URLClassPath search time
Summary: Implemented the interface in sun.misc.URLClassPath and corresponding JVM_XXX APIs
Reviewed-by: mchung, acorn, jiangli, dholmes
rev 6875 : 8056240: Investigate increased GC remark time after class unloading changes in CRM Fuse
Reviewed-by: mgerdin, coleenp, bdelsart

Split Split Close
Expand all
Collapse all
          --- old/src/share/vm/classfile/systemDictionary.hpp
          +++ new/src/share/vm/classfile/systemDictionary.hpp
↓ open down ↓ 167 lines elided ↑ open up ↑
 168  168    do_klass(StringBuilder_klass,                         java_lang_StringBuilder,                   Pre                 ) \
 169  169    do_klass(misc_Unsafe_klass,                           sun_misc_Unsafe,                           Pre                 ) \
 170  170                                                                                                                           \
 171  171    /* support for CDS */                                                                                                  \
 172  172    do_klass(ByteArrayInputStream_klass,                  java_io_ByteArrayInputStream,              Pre                 ) \
 173  173    do_klass(File_klass,                                  java_io_File,                              Pre                 ) \
 174  174    do_klass(URLClassLoader_klass,                        java_net_URLClassLoader,                   Pre                 ) \
 175  175    do_klass(URL_klass,                                   java_net_URL,                              Pre                 ) \
 176  176    do_klass(Jar_Manifest_klass,                          java_util_jar_Manifest,                    Pre                 ) \
 177  177    do_klass(sun_misc_Launcher_klass,                     sun_misc_Launcher,                         Pre                 ) \
      178 +  do_klass(sun_misc_Launcher_AppClassLoader_klass,      sun_misc_Launcher_AppClassLoader,          Pre                 ) \
      179 +  do_klass(sun_misc_Launcher_ExtClassLoader_klass,      sun_misc_Launcher_ExtClassLoader,          Pre                 ) \
 178  180    do_klass(CodeSource_klass,                            java_security_CodeSource,                  Pre                 ) \
 179  181                                                                                                                           \
 180  182    /* It's NULL in non-1.4 JDKs. */                                                                                       \
 181  183    do_klass(StackTraceElement_klass,                     java_lang_StackTraceElement,               Opt                 ) \
 182  184    /* Universe::is_gte_jdk14x_version() is not set up by this point. */                                                   \
 183  185    /* It's okay if this turns out to be NULL in non-1.4 JDKs. */                                                          \
 184  186    do_klass(nio_Buffer_klass,                            java_nio_Buffer,                           Opt                 ) \
 185  187                                                                                                                           \
 186  188    /* Preload boxing klasses */                                                                                           \
 187  189    do_klass(Boolean_klass,                               java_lang_Boolean,                         Pre                 ) \
↓ open down ↓ 144 lines elided ↑ open up ↑
 332  334  
 333  335    // Garbage collection support
 334  336  
 335  337    // This method applies "blk->do_oop" to all the pointers to "system"
 336  338    // classes and loaders.
 337  339    static void always_strong_oops_do(OopClosure* blk);
 338  340    static void always_strong_classes_do(KlassClosure* closure);
 339  341  
 340  342    // Unload (that is, break root links to) all unmarked classes and
 341  343    // loaders.  Returns "true" iff something was unloaded.
 342      -  static bool do_unloading(BoolObjectClosure* is_alive);
      344 +  static bool do_unloading(BoolObjectClosure* is_alive, bool clean_alive = true);
 343  345  
 344  346    // Used by DumpSharedSpaces only to remove classes that failed verification
 345  347    static void remove_classes_in_error_state();
 346  348  
 347  349    static int calculate_systemdictionary_size(int loadedclasses);
 348  350  
 349  351    // Applies "f->do_oop" to all root oops in the system dictionary.
 350  352    static void oops_do(OopClosure* f);
 351  353    static void roots_oops_do(OopClosure* strong, OopClosure* weak);
 352  354  
↓ open down ↓ 362 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX