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

Reply via email to