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