RFC: JWarmup precompile java hot methods at application startup
yumin qi
yumin.qi at gmail.com
Fri Mar 15 05:59:23 UTC 2019
Please review the patch for implementing JEP 8203832:
(*https://bugs.openjdk.java.net/browse/JDK-8203832
<https://bugs.openjdk.java.net/browse/JDK-8203832>)*
Bug: *https://bugs.openjdk.java.net/browse/JDK-8220692
<https://bugs.openjdk.java.net/browse/JDK-8220692>*
Webrev: http://cr.openjdk.java.net/~minqi/8220692/webrev-01/
<http://cr.openjdk.java.net/~minqi/8203832/webrev-01/>
Summary: This patch implements the first version of JIT warmup to
solve the java application peak time CPU contest between JIT compiler
threads and regular application java threads. The CPU contest is
avoided by pre-run to collect comilation data and precompile the hot
java methods during application startup based on the pre-run collected
data.
The main flags (-XX:) used to control are:
CompilationWarmUpRecording: used for collecting compilation data.
Result stored in a file set by flag CompilationWarmUpLogfile.
CompilationWarmUp: use collected data to precompile the methods
recorded in above file.
CompilationWarmUpExclude: configure a file which contains the names to
be excluded for precompile.
CompilationWarmUpRecordTime: control the warmup recording time.
CompilationWarmUpDeoptTime: time (from start) to deoptimize precomiled methods.
In this version, the profiled method data is not used at
precomilation, it will be addressed in followed bug fix. After the
first version integrated, will file bug for it. Also, it does not work
with CDS since the data added to ConstantPool data structure. It also
will be addressed in another separate bug followed.
Test: Submitted to submit repo and passed all tests.
Newly added test suites: test/hotspot/jtreg/jwarmup include test
cases for most of the use cases and issues.
Thanks
Yumin
More information about the hotspot-dev
mailing list