RFR: 8359936: StableValues can release the underlying function after complete computation [v3]

Per Minborg pminborg at openjdk.org
Thu Jun 19 12:52:29 UTC 2025


On Thu, 19 Jun 2025 09:59:41 GMT, Per Minborg <pminborg at openjdk.org> wrote:

>> This PR proposes to release the underlying function if a stable function or collection has invoked its underlying supplier exhaustively so that it can be collected.
>> 
>> This PR passes tier1, tier2, and tier3 testing on multiple platforms.
>
> 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 eight additional commits since the last revision:
> 
>  - Merge branch 'master' into sv-release-supplier2
>  - Fix performance regression
>  - Clean up
>  - Fix bug
>  - Simplify
>  - Revert to records
>  - Make code more like the old one
>  - Add removable underlying functions

Performance looks really good on all platforms except Linux AArch64, where there are significant regressions for:
 * StableFunctionBenchmark.map
 * StableFunctionBenchmark.staticIntFunction
 * StableFunctionBenchmark.staticSMap
 * StableIntFunctionBenchmark.intFunction
 * StableIntFunctionBenchmark.staticIntFunction
 
These need to be addressed before integration.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/25878#issuecomment-2987956351


More information about the core-libs-dev mailing list