On Sun, 22 Jan 2023 09:50:21 GMT, Sergey Tsypanov <stsypa...@openjdk.org> wrote:
>> Currently it's O(n) - we do `n` shifts of bytes within `StringBuilder`. This >> can be reduced to O(1) improving the code like: >> >> DateTimeFormatter dtf = new DateTimeFormatterBuilder() >> .appendLiteral("Date:") >> .padNext(20, ' ') >> .append(DateTimeFormatter.ISO_DATE) >> .toFormatter(); >> String text = dtf.format(LocalDateTime.now()); > > Sergey Tsypanov has updated the pull request with a new target base due to a > merge or a rebase. The incremental webrev excludes the unrelated changes > brought in by the merge/rebase. The pull request contains two additional > commits since the last revision: > > - Merge branch 'master' into dtfb > - Improve padding of DateTimeFormatter Benchmarking: make test TEST="micro:time.format.DateTimeFormatterBench" MICRO="OPTIONS=-prof gc" master Benchmark Mode Cnt Score Error Units DateTimeFormatterBench.formatWithPadding thrpt 15 1621.744 ± 216.203 ops/ms DateTimeFormatterBench.formatWithPadding:·gc.alloc.rate thrpt 15 295.938 ± 39.238 MB/sec DateTimeFormatterBench.formatWithPadding:·gc.alloc.rate.norm thrpt 15 192.000 ± 0.001 B/op DateTimeFormatterBench.formatWithPadding:·gc.count thrpt 15 23.000 counts DateTimeFormatterBench.formatWithPadding:·gc.time thrpt 15 353.000 ms DateTimeFormatterBench.formatWithZeroPadding thrpt 15 2787.775 ± 1383.428 ops/ms DateTimeFormatterBench.formatWithZeroPadding:·gc.alloc.rate thrpt 15 401.775 ± 201.097 MB/sec DateTimeFormatterBench.formatWithZeroPadding:·gc.alloc.rate.norm thrpt 15 152.000 ± 0.001 B/op DateTimeFormatterBench.formatWithZeroPadding:·gc.count thrpt 15 22.000 counts DateTimeFormatterBench.formatWithZeroPadding:·gc.time thrpt 15 396.000 ms dtfb Benchmark Mode Cnt Score Error Units DateTimeFormatterBench.formatWithPadding thrpt 15 5489.480 ± 200.120 ops/ms DateTimeFormatterBench.formatWithPadding:·gc.alloc.rate thrpt 15 1171.637 ± 42.648 MB/sec DateTimeFormatterBench.formatWithPadding:·gc.alloc.rate.norm thrpt 15 224.000 ± 0.001 B/op DateTimeFormatterBench.formatWithPadding:·gc.count thrpt 15 62.000 counts DateTimeFormatterBench.formatWithPadding:·gc.time thrpt 15 342.000 ms DateTimeFormatterBench.formatWithZeroPadding thrpt 15 14355.239 ± 640.377 ops/ms DateTimeFormatterBench.formatWithZeroPadding:·gc.alloc.rate thrpt 15 2078.802 ± 93.278 MB/sec DateTimeFormatterBench.formatWithZeroPadding:·gc.alloc.rate.norm thrpt 15 152.000 ± 0.001 B/op DateTimeFormatterBench.formatWithZeroPadding:·gc.count thrpt 15 77.000 counts DateTimeFormatterBench.formatWithZeroPadding:·gc.time thrpt 15 555.000 ms ------------- PR Comment: https://git.openjdk.org/jdk/pull/12131#issuecomment-1483302436