-
Enhancement
-
Resolution: Fixed
-
P4
-
17, 21, 23
-
b05
Currently, the java.util.Formatter$Conversion::isValid method is implemented based on switch, which cannot be inlined because codeSize > 325. This problem can be avoided by implementing it with ImmutableBitSetPredicate.
use -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining to see the master branch:
@ 109 java.util.Formatter$Conversion::isValid (358 bytes) failed to inline: hot method too big
current version
@ 109 java.util.Formatter$Conversion::isValid (10 bytes) inline (hot)
@ 4 jdk.internal.util.ImmutableBitSetPredicate$SmallImmutableBitSetPredicate::test (50 bytes) inline (hot)
use -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining to see the master branch:
@ 109 java.util.Formatter$Conversion::isValid (358 bytes) failed to inline: hot method too big
current version
@ 109 java.util.Formatter$Conversion::isValid (10 bytes) inline (hot)
@ 4 jdk.internal.util.ImmutableBitSetPredicate$SmallImmutableBitSetPredicate::test (50 bytes) inline (hot)
- relates to
-
JDK-8263038 Optimize String.format for simple specifiers
- Resolved