On Sat, 23 Nov 2024 01:38:00 GMT, Brent Christian <bchri...@openjdk.org> wrote:

> Though, for this test, CleanableList itself is not being walked.

I think this is a matter of definition of "CleanableList itself is not being 
walked". 

The Java code does not walk the list in this test, but GC does the walk the 
list as part of GC cycle. This is what this test sets up: it builds the large 
list of cleanable objects, makes sure the cleanable objects are reachable, so 
associated cleaners stay in the list, and then forces GC to mark the entire 
heap. When there is a large linked list formed by old `ClenableList` 
implementation, GC times suffer, because GC cannot parallelize marking work. 
This is why this benchmark improves with new implementation: GC becomes more 
parallel/efficient.

> So this test measures what effect, if any, the conversion from the old linked 
> list to new CleanableList has on GC, when referents are not becoming 
> unreachable.

Yes. And "if any" in this test shows up as 2..3x improvement in GC times :)

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

PR Review Comment: https://git.openjdk.org/jdk/pull/22043#discussion_r1856115040

Reply via email to