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 src/java.base/share/classes/java/util/AbstractMap.java line 524: > 522: protected Object clone() throws CloneNotSupportedException { > 523: AbstractMap<?,?> result = (AbstractMap<?,?>)super.clone(); > 524: return result; Suggestion: return super.clone(); ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/15614#discussion_r1334479768