RFR 8185496: Improve performance of system properties initialization in initPhase1

David Holmes david.holmes at oracle.com
Tue Nov 6 21:52:18 UTC 2018


Hi Roger,

On 7/11/2018 2:17 AM, Roger Riggs wrote:
> While working to reduce startup time initializing properties, a pair of 
> improvements are proposed.
> 
> 8185496: Improve performance of system properties initialization in 
> initPhase1 [1]
> 8213424: VersionProps duplicate initialization [2]
> 
> 1) The overhead of providing default values in native is reduced by 
> applying the defaults
>      when first used and leaving the properties undefined unless there is
>      an OS supplied value or a -D command line argument

Looking at the hotspot change for setting sun.nio.MaxDirectMemorySize I 
don't really understand the change. In the current code we will always 
set the property even if the value -1 means it is "unset". Your change 
wants to exclude it completely in the default case as an optimisation, 
yet to do that you have to perform far more work in the VM examining 
every key to see if we need to skip a -D set value. That seems 
counter-productive on the surface. What is the actual performance change 
here?

Thanks,
David

> 2) Two tests for properties are combined into a more complete test
> 
> webrev:
> 
> http://cr.openjdk.java.net/~rriggs/webrev-props-cleanup-8185496/
> 
> Issues:
> [1] https://bugs.openjdk.java.net/browse/JDK-8185496
> [2] https://bugs.openjdk.java.net/browse/JDK-8213424
> 
> Thanks for any comments and suggestions, Roger
> 
> 
> 


More information about the core-libs-dev mailing list