810 size_t gen0_capacity = gch->get_gen(0)->capacity_before_gc(); 811 return (word_size > heap_word_size(gen0_capacity)) 812 || GC_locker::is_active_and_needs_gc() 813 || gch->incremental_collection_failed(); 814 } 815 816 817 // 818 // MarkSweepPolicy methods 819 // 820 821 MarkSweepPolicy::MarkSweepPolicy() { 822 initialize_all(); 823 } 824 825 void MarkSweepPolicy::initialize_generations() { 826 _generations = new GenerationSpecPtr[number_of_generations()]; 827 if (_generations == NULL) 828 vm_exit_during_initialization("Unable to allocate gen spec"); 829 830 if (UseParNewGC && ParallelGCThreads > 0) { 831 _generations[0] = new GenerationSpec(Generation::ParNew, _initial_gen0_size, _max_gen0_size); 832 } else { 833 _generations[0] = new GenerationSpec(Generation::DefNew, _initial_gen0_size, _max_gen0_size); 834 } 835 _generations[1] = new GenerationSpec(Generation::MarkSweepCompact, _initial_gen1_size, _max_gen1_size); 836 837 if (_generations[0] == NULL || _generations[1] == NULL) 838 vm_exit_during_initialization("Unable to allocate gen spec"); 839 } 840 841 void MarkSweepPolicy::initialize_gc_policy_counters() { 842 // initialize the policy counters - 2 collectors, 3 generations 843 if (UseParNewGC && ParallelGCThreads > 0) { 844 _gc_policy_counters = new GCPolicyCounters("ParNew:MSC", 2, 3); 845 } 846 else { 847 _gc_policy_counters = new GCPolicyCounters("Copy:MSC", 2, 3); 848 } 849 } | 810 size_t gen0_capacity = gch->get_gen(0)->capacity_before_gc(); 811 return (word_size > heap_word_size(gen0_capacity)) 812 || GC_locker::is_active_and_needs_gc() 813 || gch->incremental_collection_failed(); 814 } 815 816 817 // 818 // MarkSweepPolicy methods 819 // 820 821 MarkSweepPolicy::MarkSweepPolicy() { 822 initialize_all(); 823 } 824 825 void MarkSweepPolicy::initialize_generations() { 826 _generations = new GenerationSpecPtr[number_of_generations()]; 827 if (_generations == NULL) 828 vm_exit_during_initialization("Unable to allocate gen spec"); 829 830 if (UseParNewGC) { 831 _generations[0] = new GenerationSpec(Generation::ParNew, _initial_gen0_size, _max_gen0_size); 832 } else { 833 _generations[0] = new GenerationSpec(Generation::DefNew, _initial_gen0_size, _max_gen0_size); 834 } 835 _generations[1] = new GenerationSpec(Generation::MarkSweepCompact, _initial_gen1_size, _max_gen1_size); 836 837 if (_generations[0] == NULL || _generations[1] == NULL) 838 vm_exit_during_initialization("Unable to allocate gen spec"); 839 } 840 841 void MarkSweepPolicy::initialize_gc_policy_counters() { 842 // initialize the policy counters - 2 collectors, 3 generations 843 if (UseParNewGC) { 844 _gc_policy_counters = new GCPolicyCounters("ParNew:MSC", 2, 3); 845 } else { 846 _gc_policy_counters = new GCPolicyCounters("Copy:MSC", 2, 3); 847 } 848 } |