On Tue, 28 Jan 2025 16:44:17 GMT, Shaojin Wen <[email protected]> wrote:
>> ZoneOffset.MINUTES_15_CACHE uses AtomicReferenceArray to replace
>> ConcurrentMap to avoid object allocation caused by boxing from int to
>> Integer during access.
>
> Shaojin Wen has updated the pull request incrementally with two additional
> commits since the last revision:
>
> - simplify
> - MINUTES_15_CACHE -> QUARTER_CACHE
src/java.base/share/classes/java/time/ZoneOffset.java line 138:
> 136: implements TemporalAccessor, TemporalAdjuster,
> Comparable<ZoneOffset>, Serializable {
> 137:
> 138: /** Cache of time-zone offset by offset in seconds. */
Suggestion:
/** Cache of time-zone offset by offset in quarters. */
src/java.base/share/classes/java/time/ZoneOffset.java line 431:
> 429: int quarters = totalSeconds / SECONDS_PER_QUARTER;
> 430: if (totalSeconds - quarters * SECONDS_PER_QUARTER == 0) {
> 431: ZoneOffset result = QUARTER_CACHE.getOpaque(quarters & 0xff);
For the ease of future maintenance, I recommend replacing `quarters & 0xFF`
with a new variable `key`:
// quarters range from -72 to 72.
// & 0xFF maps them to 0-72 and 184-255.
int key = quarters & 0xFF;
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23337#discussion_r1932514778
PR Review Comment: https://git.openjdk.org/jdk/pull/23337#discussion_r1932526383