Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reduce counts when class of method is not in SCC
By default, OpenJ9 uses an "implicit" shared class cache (SCC) that is used to cache "bootstrap" classes and methods. Currently, methods whose class is not present in the SCC receive a high initial invocation count (3000/3000 for loopless/loopy method) in order to improve steady state throughput. However, this could affect start-up time of applications because methods are interpreted for too long before being JIT compiled. The presence of `-Xshareclasses` on the command line is a sign that the user cares about start-up time and OpenJ9 automatically lowers the invocations counts to 1000/250. However, with the implicit SCC (no -Xshareclasses command line option), application classes are not cached and methods belonging to those classes will receive a large initial invocation count (3000/3000). Since application classes are likely important, we would like to use lower counts even when the implict SCC is used. This commit lowers the initial invocation counts for methods whose class is not in SCC under the following conditions: - SCC is used. Rationale: -Xshareclasses:none may be a sign that user does not care about start-up that much. - -Xtune:throughput is not used. Rationale: this option is a clear signal that the user cares more about throughput than startup. - The user has not provided a specific count on the command line. - The JVM is in start-up mode. Rationale: this feature only seeks to improve start-up time. - The JVM runs on 4 or more vCPUs. Rationale: lower counts will generate more compilations which will compete with application Depends on eclipse/omr/#7156 Signed-off-by: Marius <[email protected]>
- Loading branch information