On Thu, 21 Sep 2023 16:40:59 GMT, Per Minborg <[email protected]> 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