src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp

Print this page




 895 }
 896 
 897 void PSParallelCompact::initialize_space_info()
 898 {
 899   memset(&_space_info, 0, sizeof(_space_info));
 900 
 901   ParallelScavengeHeap* heap = gc_heap();
 902   PSYoungGen* young_gen = heap->young_gen();
 903 
 904   _space_info[old_space_id].set_space(heap->old_gen()->object_space());
 905   _space_info[eden_space_id].set_space(young_gen->eden_space());
 906   _space_info[from_space_id].set_space(young_gen->from_space());
 907   _space_info[to_space_id].set_space(young_gen->to_space());
 908 
 909   _space_info[old_space_id].set_start_array(heap->old_gen()->start_array());
 910 }
 911 
 912 void PSParallelCompact::initialize_dead_wood_limiter()
 913 {
 914   const size_t max = 100;
 915   _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
 916   _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
 917   _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev);
 918   DEBUG_ONLY(_dwl_initialized = true;)
 919   _dwl_adjustment = normal_distribution(1.0);
 920 }
 921 
 922 // Simple class for storing info about the heap at the start of GC, to be used
 923 // after GC for comparison/printing.
 924 class PreGCValues {
 925 public:
 926   PreGCValues() { }
 927   PreGCValues(ParallelScavengeHeap* heap) { fill(heap); }
 928 
 929   void fill(ParallelScavengeHeap* heap) {
 930     _heap_used      = heap->used();
 931     _young_gen_used = heap->young_gen()->used_in_bytes();
 932     _old_gen_used   = heap->old_gen()->used_in_bytes();
 933     _metadata_used  = MetaspaceAux::used_bytes();
 934   };
 935 
 936   size_t heap_used() const      { return _heap_used; }




 895 }
 896 
 897 void PSParallelCompact::initialize_space_info()
 898 {
 899   memset(&_space_info, 0, sizeof(_space_info));
 900 
 901   ParallelScavengeHeap* heap = gc_heap();
 902   PSYoungGen* young_gen = heap->young_gen();
 903 
 904   _space_info[old_space_id].set_space(heap->old_gen()->object_space());
 905   _space_info[eden_space_id].set_space(young_gen->eden_space());
 906   _space_info[from_space_id].set_space(young_gen->from_space());
 907   _space_info[to_space_id].set_space(young_gen->to_space());
 908 
 909   _space_info[old_space_id].set_start_array(heap->old_gen()->start_array());
 910 }
 911 
 912 void PSParallelCompact::initialize_dead_wood_limiter()
 913 {
 914   const size_t max = 100;
 915   _dwl_mean = double(MIN2((size_t)ParallelOldDeadWoodLimiterMean, max)) / 100.0;
 916   _dwl_std_dev = double(MIN2((size_t)ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
 917   _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev);
 918   DEBUG_ONLY(_dwl_initialized = true;)
 919   _dwl_adjustment = normal_distribution(1.0);
 920 }
 921 
 922 // Simple class for storing info about the heap at the start of GC, to be used
 923 // after GC for comparison/printing.
 924 class PreGCValues {
 925 public:
 926   PreGCValues() { }
 927   PreGCValues(ParallelScavengeHeap* heap) { fill(heap); }
 928 
 929   void fill(ParallelScavengeHeap* heap) {
 930     _heap_used      = heap->used();
 931     _young_gen_used = heap->young_gen()->used_in_bytes();
 932     _old_gen_used   = heap->old_gen()->used_in_bytes();
 933     _metadata_used  = MetaspaceAux::used_bytes();
 934   };
 935 
 936   size_t heap_used() const      { return _heap_used; }