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.