RFR: 8351565: Implement JEP 502: Stable Values (Preview) [v73]
Per Minborg
pminborg at openjdk.org
Wed Apr 23 08:49:12 UTC 2025
On Wed, 23 Apr 2025 07:41:36 GMT, Per Minborg <pminborg at openjdk.org> wrote:
>> Implement JEP 502.
>>
>> The PR passes tier1-tier3 tests.
>
> Per Minborg has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove section on fun/coll sync
Here is a PR update applicable for https://github.com/openjdk/jdk/pull/23972/commits/1a25b8639b15228287da59fa0856eec1141d5021:
Tests in tier1, tier2, and tier3 pass in a multi-machine CI pipeline.
Here is a link to the generated JavaDocs: https://cr.openjdk.org/~pminborg/stable-values2/api/java.base/java/lang/StableValue.html
Here are the current benchmark outputs (for an M1 on macOS Sequoia 15.4):
Benchmark Mode Cnt Score Error Units
StableFunctionBenchmark.function avgt 10 4.612 ± 0.882 ns/op
StableFunctionBenchmark.map avgt 10 4.738 ± 0.920 ns/op
StableFunctionBenchmark.staticIntFunction avgt 10 1.653 ± 0.037 ns/op
StableFunctionBenchmark.staticSMap avgt 10 2.771 ± 1.747 ns/op
StableFunctionSingleBenchmark.function avgt 10 4.268 ± 0.085 ns/op
StableFunctionSingleBenchmark.map avgt 10 4.241 ± 0.095 ns/op
StableFunctionSingleBenchmark.staticIntFunction avgt 10 0.703 ± 0.009 ns/op
StableFunctionSingleBenchmark.staticSMap avgt 10 0.727 ± 0.055 ns/op
StableIntFunctionBenchmark.intFunction avgt 10 1.543 ± 0.038 ns/op
StableIntFunctionBenchmark.list avgt 10 1.532 ± 0.061 ns/op
StableIntFunctionBenchmark.staticIntFunction avgt 10 3.602 ± 0.079 ns/op
StableIntFunctionBenchmark.staticList avgt 10 2.279 ± 1.932 ns/op
StableIntFunctionSingleBenchmark.intFunction avgt 10 2.434 ± 0.044 ns/op
StableIntFunctionSingleBenchmark.list avgt 10 2.547 ± 0.125 ns/op
StableIntFunctionSingleBenchmark.staticIntFunction avgt 10 0.694 ± 0.026 ns/op
StableIntFunctionSingleBenchmark.staticList avgt 10 0.691 ± 0.018 ns/op
StableMethodHandleBenchmark.atomic avgt 10 3.673 ± 0.069 ns/op
StableMethodHandleBenchmark.dcl avgt 10 3.645 ± 0.390 ns/op
StableMethodHandleBenchmark.finalMh avgt 10 0.712 ± 0.123 ns/op
StableMethodHandleBenchmark.map avgt 10 7.431 ± 0.314 ns/op
StableMethodHandleBenchmark.nonFinalMh avgt 10 3.170 ± 0.094 ns/op
StableMethodHandleBenchmark.stableMap avgt 10 0.695 ± 0.026 ns/op
StableMethodHandleBenchmark.stableMh avgt 10 0.698 ± 0.032 ns/op
StableSupplierBenchmark.stable avgt 10 1.390 ± 0.055 ns/op
StableSupplierBenchmark.staticStable avgt 10 0.373 ± 0.049 ns/op
StableSupplierBenchmark.staticSupplier avgt 10 0.352 ± 0.010 ns/op
StableSupplierBenchmark.supplier avgt 10 1.610 ± 0.125 ns/op
StableValueBenchmark.atomic avgt 10 1.424 ± 0.055 ns/op
StableValueBenchmark.dcl avgt 10 1.412 ± 0.044 ns/op
StableValueBenchmark.refSupplier avgt 10 0.458 ± 0.021 ns/op
StableValueBenchmark.stable avgt 10 1.400 ± 0.066 ns/op
StableValueBenchmark.stableNull avgt 10 1.185 ± 0.068 ns/op
StableValueBenchmark.staticAtomic avgt 10 1.190 ± 0.046 ns/op
StableValueBenchmark.staticDcl avgt 10 0.342 ± 0.014 ns/op
StableValueBenchmark.staticHolder avgt 10 1.479 ± 0.181 ns/op
StableValueBenchmark.staticRecordHolder avgt 10 0.339 ± 0.013 ns/op
StableValueBenchmark.staticStable avgt 10 0.336 ± 0.018 ns/op
VarHandleHolderBenchmark.confinedStableFunctionLoop avgt 5 226.868 ± 2.850 ns/op
VarHandleHolderBenchmark.confinedStableMapElementLoop avgt 5 147.140 ± 2.885 ns/op
VarHandleHolderBenchmark.confinedStableMapLoop avgt 5 226.109 ± 5.524 ns/op
VarHandleHolderBenchmark.confinedStableValueLoop avgt 5 146.908 ± 1.027 ns/op
VarHandleHolderBenchmark.confinedUnmodifiableMapLoop avgt 5 147.872 ± 6.520 ns/op
VarHandleHolderBenchmark.confinedVarHandleLoop avgt 5 139.456 ± 3.091 ns/op
-------------
PR Comment: https://git.openjdk.org/jdk/pull/23972#issuecomment-2823529097
More information about the core-libs-dev
mailing list