`ZoneOffset` instances are cached by the `ZoneOffset` class itself for values 
in the range [-18h, 18h] for each second that is on an even quarter of an hour 
(i.e. at most 2*18*4+1 = 145 values). 

Instead of using a `ConcurrentHashMap` for caching instanced, we could instead 
use an `AtomicReferenceArray` with direct slot value access for said even 
seconds. This will improve performance and reduce the number of object even 
though the backing array will go from an initial 32 in the CHM to an 
initial/final 145 in the ARA. The CHM will contain much more objects and array 
slots for typical numbers of entries in the cache and will compute 
hash/bucket/collision on the hot code path for each cache access.

-------------

Commit messages:
 - Update copyright years
 - Use AtomicReferenceArray for caching instead of CHM

Changes: https://git.openjdk.org/jdk/pull/12346/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12346&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8301552
  Stats: 39 lines in 2 files changed: 22 ins; 6 del; 11 mod
  Patch: https://git.openjdk.org/jdk/pull/12346.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/12346/head:pull/12346

PR: https://git.openjdk.org/jdk/pull/12346

Reply via email to