On Tue, 5 Aug 2025 01:23:17 GMT, Shaojin Wen <s...@openjdk.org> wrote:
> By adding the JVM startup parameters `-XX:+UnlockDiagnosticVMOptions > -XX:+PrintInlining` and analyzing the printed log information, and found that > the code size of the j.t.f.DateTimePrintContext::adjust method is 382, which > is greater than 325, causing inlining failure. > > > @ 7 java.time.format.DateTimePrintContext::adjust (382 bytes) failed to > inline: hot method too big > > > By splitting the code into `common/uncommon`, and moving the uncommon code > into adjust0, the adjust method is kept small and can be inlined by the C2 > optimizer. Would you mind sharing the details about the performance improvement you observed, please? On which platforms? Using which benchmarks? (Any in `test/micro/org/openjdk/bench/java/time/format`?) Using 99425bc, I can observe a noteworthy improvement on all tested platforms: | Benchmark | Linux aarch64 | Linux x64 | MacOSX aarch64 | MacOSX x64 | Windows x64 | | --------- |:-------------:|:---------:|:--------------:|:----------:|:-----------:| | DateTimeFormatterBench.formatInstants-pattern:HH_mm_ss | 0.75% | 7.33% | 7.60% | 8.30% | 9.16% | | DateTimeFormatterBench.formatInstants-pattern:HH_mm_ss_SSS | 1.13% | 0.74% | 10.24% | 4.03% | -2.67% | | DateTimeFormatterBench.formatInstants-pattern:yyyy_MM_ddTHH_mm_ss | 0.17% | 14.31% | 9.00% | 13.69% | 18.66% | | DateTimeFormatterBench.formatInstants-pattern:yyyy_MM_ddTHH_mm_ss_SSS | -0.66% | 3.26% | 5.98% | 2.91% | -1.12% | | DateTimeFormatterBench.formatZonedDateTime-pattern:HH_mm_ss | 5.17% | 6.54% | -1.61% | 1.55% | 7.25% | | DateTimeFormatterBench.formatZonedDateTime-pattern:HH_mm_ss_SSS | 3.99% | 1.45% | 4.14% | 1.79% | 1.36% | | DateTimeFormatterBench.formatZonedDateTime-pattern:yyyy_MM_ddTHH_mm_ss | 2.13% | 15.56% | -2.01% | 2.72% | 17.47% | | DateTimeFormatterBench.formatZonedDateTime-pattern:yyyy_MM_ddTHH_mm_ss_SSS | 2.41% | 1.54% | 1.43% | 2.29% | 1.61% | | DateTimeFormatterWithPaddingBench.formatWithPadding | 0.88% | 2.52% | 16.97% | 3.91% | 1.30% | | DateTimeFormatterWithPaddingBench.formatWithPaddingLengthOne | -0.80% | 6.28% | 3.21% | 5.32% | 6.09% | | DateTimeFormatterWithPaddingBench.formatWithPaddingLengthZero | 4.87% | 3.11% | 31.32% | 11.31% | 4.12% | ------------- PR Comment: https://git.openjdk.org/jdk/pull/26633#issuecomment-3154162461 PR Comment: https://git.openjdk.org/jdk/pull/26633#issuecomment-3167557811