The DateTimeFormatterBuilder::FIELD_MAP is of type Map<Character,
TemporalField>, with key values in the range 'A-Z' and 'a-z'.
We can change the type of FIELD_MAP to an array of length 128 and then use char
as an index to access the array.
This will reduce the memory usage of DateTimeFormatterBuilder::FIELD_MAP and
improve performance slightly.
By analyzing the jmap dump memory, we can see that the memory size used by
DateTimeFormatterBuilder::FIELD_MAP has dropped from 1.12kb to 528b, the number
of objects has decreased and the memory has become more flat. as shown below:
before:
after:
In order to make it easier for reviewers to see my ideas, I submitted a draft
Pull Request ( https://github.com/openjdk/jdk/pull/26634
<https://github.com/openjdk/jdk/pull/26634 > ). Please give me feedback.