1753 _gc_time_stamp(0), 1754 _survivor_plab_stats(YoungPLABSize, PLABWeight), 1755 _old_plab_stats(OldPLABSize, PLABWeight), 1756 _expand_heap_after_alloc_failure(true), 1757 _surviving_young_words(NULL), 1758 _old_marking_cycles_started(0), 1759 _old_marking_cycles_completed(0), 1760 _concurrent_cycle_started(false), 1761 _heap_summary_sent(false), 1762 _in_cset_fast_test(), 1763 _dirty_cards_region_list(NULL), 1764 _worker_cset_start_region(NULL), 1765 _worker_cset_start_region_time_stamp(NULL), 1766 _gc_timer_stw(new (ResourceObj::C_HEAP, mtGC) STWGCTimer()), 1767 _gc_timer_cm(new (ResourceObj::C_HEAP, mtGC) ConcurrentGCTimer()), 1768 _gc_tracer_stw(new (ResourceObj::C_HEAP, mtGC) G1NewTracer()), 1769 _gc_tracer_cm(new (ResourceObj::C_HEAP, mtGC) G1OldTracer()) { 1770 1771 _g1h = this; 1772 1773 _allocator = G1Allocator::create_allocator(_g1h); 1774 _humongous_object_threshold_in_words = HeapRegion::GrainWords / 2; 1775 1776 int n_queues = MAX2((int)ParallelGCThreads, 1); 1777 _task_queues = new RefToScanQueueSet(n_queues); 1778 1779 uint n_rem_sets = HeapRegionRemSet::num_par_rem_sets(); 1780 assert(n_rem_sets > 0, "Invariant."); 1781 1782 _worker_cset_start_region = NEW_C_HEAP_ARRAY(HeapRegion*, n_queues, mtGC); 1783 _worker_cset_start_region_time_stamp = NEW_C_HEAP_ARRAY(uint, n_queues, mtGC); 1784 _evacuation_failed_info_array = NEW_C_HEAP_ARRAY(EvacuationFailedInfo, n_queues, mtGC); 1785 1786 for (int i = 0; i < n_queues; i++) { 1787 RefToScanQueue* q = new RefToScanQueue(); 1788 q->initialize(); 1789 _task_queues->register_queue(i, q); 1790 ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo(); 1791 } 1792 clear_cset_start_regions(); | 1753 _gc_time_stamp(0), 1754 _survivor_plab_stats(YoungPLABSize, PLABWeight), 1755 _old_plab_stats(OldPLABSize, PLABWeight), 1756 _expand_heap_after_alloc_failure(true), 1757 _surviving_young_words(NULL), 1758 _old_marking_cycles_started(0), 1759 _old_marking_cycles_completed(0), 1760 _concurrent_cycle_started(false), 1761 _heap_summary_sent(false), 1762 _in_cset_fast_test(), 1763 _dirty_cards_region_list(NULL), 1764 _worker_cset_start_region(NULL), 1765 _worker_cset_start_region_time_stamp(NULL), 1766 _gc_timer_stw(new (ResourceObj::C_HEAP, mtGC) STWGCTimer()), 1767 _gc_timer_cm(new (ResourceObj::C_HEAP, mtGC) ConcurrentGCTimer()), 1768 _gc_tracer_stw(new (ResourceObj::C_HEAP, mtGC) G1NewTracer()), 1769 _gc_tracer_cm(new (ResourceObj::C_HEAP, mtGC) G1OldTracer()) { 1770 1771 _g1h = this; 1772 1773 _workers = new FlexibleWorkGang("GC Thread", ParallelGCThreads, 1774 /* are_GC_task_threads */true, 1775 /* are_ConcurrentGC_threads */false); 1776 _workers->initialize_workers(); 1777 1778 _allocator = G1Allocator::create_allocator(_g1h); 1779 _humongous_object_threshold_in_words = HeapRegion::GrainWords / 2; 1780 1781 int n_queues = MAX2((int)ParallelGCThreads, 1); 1782 _task_queues = new RefToScanQueueSet(n_queues); 1783 1784 uint n_rem_sets = HeapRegionRemSet::num_par_rem_sets(); 1785 assert(n_rem_sets > 0, "Invariant."); 1786 1787 _worker_cset_start_region = NEW_C_HEAP_ARRAY(HeapRegion*, n_queues, mtGC); 1788 _worker_cset_start_region_time_stamp = NEW_C_HEAP_ARRAY(uint, n_queues, mtGC); 1789 _evacuation_failed_info_array = NEW_C_HEAP_ARRAY(EvacuationFailedInfo, n_queues, mtGC); 1790 1791 for (int i = 0; i < n_queues; i++) { 1792 RefToScanQueue* q = new RefToScanQueue(); 1793 q->initialize(); 1794 _task_queues->register_queue(i, q); 1795 ::new (&_evacuation_failed_info_array[i]) EvacuationFailedInfo(); 1796 } 1797 clear_cset_start_regions(); |