On Wed, 29 Mar 2023 08:16:32 GMT, Sergey Tsypanov <stsypa...@openjdk.org> wrote:
>> 1) When `DateTimeFormatter` is reused we don't need to copy >> `availableZoneIds` and allocate `nonRegionIds` as PrefixTree can be taken >> from cache. In the related benchmark allocation of `HashSet` takes ~93% of >> all time, so avoiding it should bring some improvement for cases when we >> reuse `DateTimeFormatter` to parse a string into `ZoneDateTime` >>  >> >> 2) `DateTimeFormatter` is mostly used with one locale, so `cachedTree` and >> `cachedTreeCI` can have predefined size. >> >> >> @State(Scope.Thread) >> @BenchmarkMode(Mode.AverageTime) >> @OutputTimeUnit(TimeUnit.NANOSECONDS) >> public class DateTimeFormatterBenchmark { >> >> private static final DateTimeFormatter df = new >> DateTimeFormatterBuilder().appendPattern("yyyy:MM:dd:HH:mm:v").toFormatter(); >> private static final String TEXT = "2015:03:10:12:13:ECT"; >> >> @Setup >> public void setUp() { >> ZonedDateTime.parse(TEXT, df); >> } >> >> @Benchmark >> public ZonedDateTime parse() { >> return ZonedDateTime.parse(TEXT, df); >> } >> } > > Sergey Tsypanov has updated the pull request incrementally with one > additional commit since the last revision: > > 8304745: Fix package LGTM ------------- Marked as reviewed by naoto (Reviewer). PR Review: https://git.openjdk.org/jdk/pull/12612#pullrequestreview-1363506079