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