--- old/src/hotspot/share/gc/g1/g1CollectedHeap.hpp 2020-04-25 20:53:29.343347020 +0800 +++ new/src/hotspot/share/gc/g1/g1CollectedHeap.hpp 2020-04-25 20:53:29.179347521 +0800 @@ -550,7 +550,7 @@ // Runs the given AbstractGangTask with the current active workers, returning the // total time taken. - Tickspan run_task(AbstractGangTask* task); + virtual Tickspan run_task(AbstractGangTask* task); G1Allocator* allocator() { return _allocator; @@ -1167,9 +1167,13 @@ // Iteration functions. + void object_iterate_parallel(ObjectClosure* cl, uint worker_id, HeapRegionClaimer* claimer); + // Iterate over all objects, calling "cl.do_object" on each. virtual void object_iterate(ObjectClosure* cl); + virtual ParallelObjectIterator* parallel_object_iterator(uint thread_num); + // Keep alive an object that was loaded with AS_NO_KEEPALIVE. virtual void keep_alive(oop obj);