RFR: 8207263: Store the Configuration for system modules into CDS archive

Jiangli Zhou jiangli.zhou at oracle.com
Mon Aug 6 16:48:51 UTC 2018


Hi Calvin and Ioi,

Thanks for reviewing the change! I'll incorporate your suggestions.

As Claes pointed out in his email, there was a subtle issue with the 
empty configuration, which was undetected by the testing for archiving 
changes but could introduce a bug in certain cases. Claes has already 
filed JDK-8209003 for consolidating empty collections usage in module 
code. I'll look into archiving the immutable singletons in 
java.util.ImmutableCollections.

Thanks!

Jiangli


On 8/3/18 2:58 PM, Ioi Lam wrote:
> On 8/3/18 11:37 AM, Calvin Cheung wrote:
>> Hi Jiangli,
>>
>> The changes look good to me.
>>
>> I have couple of minor comments:
>>
>> 1) vmSymbols.hpp
>>
>>  653   template(url_void_signature, 
>> "(Ljava/net/URL;)V")                                           \
>>  654   template(toFileURL_name, 
>> "toFileURL")                                                   \
>>  655   template(toFileURL_signature, 
>> "(Ljava/lang/String;)Ljava/net/URL;")
>>
>> Since you've moved the above lines to after 
>> “template(systemModules_signature, …”, I’d suggest rearrange the 
>> entire block (lines 652 - 659) in alphabetical order.
>>
> Hi Jiangli,
>
> I've reviewed the code. It looks like a clean change and it's great to 
> make further progress in start-up improvement!
>
> Just a small note on vmSymbols.hpp:  this line can be deleted because 
> the symbol is no longer used.
>
>   template(jdk_vm_cds_SharedClassInfo, "jdk/vm/cds/SharedClassInfo")
>
> Thanks
> - Ioi
>
>> 2) CheckArchivedModuleApp.java
>>
>> Since it now expects two input args, I’d suggest checking the number 
>> of input args and throw an exception if it is not equal to two.
>>
>> thanks,
>> Calvin
>>
>> On 7/20/18, 11:31 AM, Jiangli Zhou wrote:
>>> Please review the following webrev that archives the system module 
>>> boot layer Configuration (including all java objects reachable from 
>>> the Configuration) in CDS archive. This is built on top of the 
>>> earlier change for JDK-8202035 
>>> (https://bugs.openjdk.java.net/browse/JDK-8202035), which provides a 
>>> framework for object sub-graph archiving.
>>>
>>> The boot layer Configuration is created in ModuleBootstrap.boot() 
>>> (similar to the archived system ModuleDescriptor objects, etc) and 
>>> is unchanged after construction. With archived boot layer 
>>> Configuration, it allows runtime to bypass the work for creating the 
>>> configuration. Currently, this is only supported when the initial 
>>> module is unnamed module. Measurements indicate archiving the boot 
>>> layer Configuration improves the startup time by 1% ~ 1.5% (on 
>>> linux-x64) when running HelloWorld from -cp at runtime.
>>>
>>> Many thanks to Alan and Claes for discussions and contributions to 
>>> this change!
>>>
>>> Webrev: http://cr.openjdk.java.net/~jiangli/8207263/webrev.00/
>>>
>>> RFE: https://bugs.openjdk.java.net/browse/JDK-8207263
>>>
>>> Tested with tier1 - tier5 tests via mach5.
>>>
>>> Thanks,
>>>
>>> Jiangli
>>>
>



More information about the hotspot-runtime-dev mailing list