On Thu, 21 Sep 2023 16:40:59 GMT, Per Minborg <pminb...@openjdk.org> wrote:
>> 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 Looking at the potential compatibility issues (See CSR), I have produced an alternate draft PR that solves the problem by simply not overriding `AbstractMap`: https://github.com/openjdk/jdk/pull/15887 ------------- PR Comment: https://git.openjdk.org/jdk/pull/15614#issuecomment-1731232410