RFC: JWarmup precompile java hot methods at application startup

Tobias Hartmann tobias.hartmann at oracle.com
Mon May 13 09:58:53 UTC 2019


Hi Yumin,

> 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.

Why is that? I think it would be good to have everything in one JEP.

I've looked at the compiler related changes. Here are some comments/questions.

ciMethod.cpp
- So CompilationWarmUp is not using any profile information? Not even the profile obtained in the
current execution?

compile.cpp
- line 748: Why is that required? Couldn't it happen that a method is never compiled because the
code that would resolve a field is never executed?

graphKit.cpp
- line 2832: please add a comment
- line 2917: checks should be merged into one if and please add a comment

jvm.cpp
- Could you explain why it's guaranteed that warmup compilation is completed once the dummy method
is compiled? And why is it hardcoded to print "com.alibaba.jwarmup.JWarmUp"?

symbolMatcher.cpp:
- What is test_symbol_matcher() used for?

jitWarmUp.cpp:
- line 146: So what about methods that are only ever compiled at C1 level? Wouldn't it make sense to
keep track of the comp_level during CompilationWarmUpRecording?


I also found several typos while reading through the code (listed in random order):

globals.hpp
- "flushing profling" -> "flushing profiling"

method.hpp
- "when this method first been invoked"

templateInterpreterGenerator_x86.cpp
- initializition -> initialization

dict.cpp
- initializated -> initialized

jitWarmUp.cpp
- uninitilaized -> uninitialized
- inited -> should be initialized, right?

jitWarmUp.hpp
. nofityApplicationStartUpIsDone -> notifyApplicationStartUpIsDone

constantPool.cpp
- recusive -> recursive

JWarmUp.java
- appliacation -> application

TestThrowInitializaitonException.java -> TestThrowInitializationException.java

These tests should be renamed (it's not clear what issue the number refers to):
- issue9780156.sh
- Issue11272598.java

Thanks,
Tobias


More information about the hotspot-dev mailing list