> This PR outlines a solution for making immutable maps `@ValueBased` by > removing cacheing of certain values in `AbstractMap`. > > By removing these caching fields in `AbstractMap`, we can make the immutable > maps `@ValueBased` and at the same time, performance is likely improved > because the JVM is probably able to optimize away object creation anyway via > escape analysis. Also, all maps will occupy less space as we get rid of a > number of objects and references stored for each map. > > We need to benchmark this solution to better understand its implications.
Per Minborg 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 five additional commits since the last revision: - Merge branch 'master' into vb-map2 - Remove redundant impl spec parts - Merge pull request #4 from cl4es/HashMapViews Add simple HashMapViews microbenchmark - Add simple HashMapViews microbenchmark - Remove caching in AbstractMap and make immutable maps @ValueBased ------------- Changes: - all: https://git.openjdk.org/jdk/pull/15614/files - new: https://git.openjdk.org/jdk/pull/15614/files/2cb090b6..18cfff84 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=15614&range=02 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=15614&range=01-02 Stats: 68207 lines in 2244 files changed: 20382 ins; 12922 del; 34903 mod Patch: https://git.openjdk.org/jdk/pull/15614.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/15614/head:pull/15614 PR: https://git.openjdk.org/jdk/pull/15614