RFR 4947890 : Minimize JNI upcalls in system-properties initialization

Roger Riggs Roger.Riggs at oracle.com
Wed Nov 14 21:02:13 UTC 2018


Hi Mandy,

The change does not make a measurable change in startup time.
The number of bytecodes executed in initPhase1 dropped from 60k to 50k
out of 850k.

Thanks, Roger


On 11/14/2018 12:25 PM, Mandy Chung wrote:
> Hi Roger,
>
> Does this change improve the startup performance? initProperties
> is done in initPhase1 where the Java code is running in interpreted
> mode.  Brent did the measurement some time ago that JNI calls
> is one cost while executing quite a lot of bytecodes in
> interpreted mode is another cost.
>
> Mandy
>
> On 11/13/18 7:59 AM, Roger Riggs wrote:
>> Please review a re-implementation of the initialization of System 
>> properties
>> moving some functions from native to Java.
>>
>> The upcalls from native to java for each property are replaced by a 
>> mechanism
>> to gather the platform, VM and command line properties and return them
>> from a single JNI call.  The creation of the Properties instance and 
>> applying
>> command line overrides is handled in Java instead of native.
>>
>> The JVM_initProperties interface in Hotspot is replaced by 
>> JVM_getProperties.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~rriggs/webrev-props-only-raw/
>>
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-4947890
>>
>> Thanks, Roger
>>
>



More information about the core-libs-dev mailing list