On Thu, 21 Nov 2024 05:42:09 GMT, Brent Christian <[email protected]> wrote:
>> Aleksey Shipilev has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> Check all elements are removable after random test
>
> test/micro/org/openjdk/bench/java/lang/ref/CleanerGC.java line 45:
>
>> 43:
>> 44: // Deliberately a linked list to avoid exposing external parallelism
>> to GC.
>> 45: Target prev;
>
> Is `CleanerGC.prev` used?
Yes. It maintains the root of a reachable linked list of `Target`-s.
> test/micro/org/openjdk/bench/java/lang/ref/CleanerGC.java line 57:
>
>> 55: @Benchmark
>> 56: public void test() {
>> 57: System.gc();
>
> How confident are we that most/all/(any?) `Target` objects are being
> collected?
The point of this test is not collecting `Target`-s -- they are all reachable.
The point of this test is to make GC walk the large linked list of
`PhantomCleanable`-s during GC, which replicates what we see in prod-like
scenarios.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22043#discussion_r1851475659
PR Review Comment: https://git.openjdk.org/jdk/pull/22043#discussion_r1851474396