comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @ 2037:b03260081e9b

7006113: G1: Initialize ReferenceProcessor::_is_alive_non_header field Summary: Initialize the _is_alive_non_header field of G1's reference processor with an instance of the G1CMIsAliveClosure. This will stop adding reference objects with live referents to the discovered reference lists unnecessarily. Reviewed-by: tonyp, ysr, jwilhelm, brutisso
author johnc
date Fri, 17 Dec 2010 11:26:53 -0800
parents fb712ff22571
children 74ee0db180fa
comparison
equal deleted inserted replaced
2031:36eef023306f 2037:b03260081e9b
1766 G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) : 1766 G1CollectedHeap::G1CollectedHeap(G1CollectorPolicy* policy_) :
1767 SharedHeap(policy_), 1767 SharedHeap(policy_),
1768 _g1_policy(policy_), 1768 _g1_policy(policy_),
1769 _dirty_card_queue_set(false), 1769 _dirty_card_queue_set(false),
1770 _into_cset_dirty_card_queue_set(false), 1770 _into_cset_dirty_card_queue_set(false),
1771 _is_alive_closure(this),
1771 _ref_processor(NULL), 1772 _ref_processor(NULL),
1772 _process_strong_tasks(new SubTasksDone(G1H_PS_NumElements)), 1773 _process_strong_tasks(new SubTasksDone(G1H_PS_NumElements)),
1773 _bot_shared(NULL), 1774 _bot_shared(NULL),
1774 _par_alloc_during_gc_lock(Mutex::leaf, "par alloc during GC lock"), 1775 _par_alloc_during_gc_lock(Mutex::leaf, "par alloc during GC lock"),
1775 _objs_with_preserved_marks(NULL), _preserved_marks_of_objs(NULL), 1776 _objs_with_preserved_marks(NULL), _preserved_marks_of_objs(NULL),
2059 MemRegion mr = reserved_region(); 2060 MemRegion mr = reserved_region();
2060 _ref_processor = ReferenceProcessor::create_ref_processor( 2061 _ref_processor = ReferenceProcessor::create_ref_processor(
2061 mr, // span 2062 mr, // span
2062 false, // Reference discovery is not atomic 2063 false, // Reference discovery is not atomic
2063 true, // mt_discovery 2064 true, // mt_discovery
2064 NULL, // is alive closure: need to fill this in for efficiency 2065 &_is_alive_closure, // is alive closure
2066 // for efficiency
2065 ParallelGCThreads, 2067 ParallelGCThreads,
2066 ParallelRefProcEnabled, 2068 ParallelRefProcEnabled,
2067 true); // Setting next fields of discovered 2069 true); // Setting next fields of discovered
2068 // lists requires a barrier. 2070 // lists requires a barrier.
2069 } 2071 }