JDK-8059606 : Enable per-method usage of CompileThresholdScaling (per-method compilation thresholds)
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 9
  • Priority: P5
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2014-10-02
  • Updated: 2017-01-30
  • Resolved: 2015-01-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
9 b49Fixed
Related Reports
Blocks :  
Duplicate :  
Duplicate :  
Relates :  
Relates :  
Relates :  
This issue is related to JDK-805853, which proposes per-method compilation thresholds (thresholds that control after how many iterations a method is compiled).

JDK-8050853 splits up the task of adding per-method compilation thresholds into three parts:

1. General support of flags with value in option command (JDK-8055286 and JDK-8056964)
2. Make use of CompileThreshold in Tiered. (JDK-8059604)
3. Per method compilation threshold. (the current issue)

The current issue corresponds to Part 3 (per method compilation threshold) and relies on the changes by the implementation of Part 1 and Part 2. We use the CompileThresholdScaling flag added by JDK-8059604 to scale down/up the compilation threshold of a given method. The method(s) to be controlled are specified on the command line using the option command (added by JDK-8055286 and JDK-8056964).

With tiered compilation disabled, per-method thresholds are enforced in the interpreter. With tiered compilation enabled, per-method compilation thresholds are enforced by AdvancedThresholdPolicy. To avoid penalizing the interpreter (this change requires adding fields to MethodCounters), we enable support for per-method compilation thresholds only in debug builds.