< prev index next >

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

Print this page




  61 
  62   const size_t heap_size = _collector_policy->max_heap_byte_size();
  63 
  64   ReservedSpace heap_rs = Universe::reserve_heap(heap_size, _collector_policy->heap_alignment());
  65   MemTracker::record_virtual_memory_type((address)heap_rs.base(), mtJavaHeap);
  66 
  67   os::trace_page_sizes("ps main", _collector_policy->min_heap_byte_size(),
  68                        heap_size, generation_alignment(),
  69                        heap_rs.base(),
  70                        heap_rs.size());
  71   if (!heap_rs.is_reserved()) {
  72     vm_shutdown_during_initialization(
  73       "Could not reserve enough space for object heap");
  74     return JNI_ENOMEM;
  75   }
  76 
  77   initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size()));
  78 
  79   CardTableExtension* const barrier_set = new CardTableExtension(reserved_region());
  80   barrier_set->initialize();
  81   _barrier_set = barrier_set;
  82   oopDesc::set_bs(_barrier_set);
  83   if (_barrier_set == NULL) {
  84     vm_shutdown_during_initialization(
  85       "Could not reserve enough space for barrier set");
  86     return JNI_ENOMEM;
  87   }
  88 
  89   // Make up the generations
  90   // Calculate the maximum size that a generation can grow.  This
  91   // includes growth into the other generation.  Note that the
  92   // parameter _max_gen_size is kept as the maximum
  93   // size of the generation as the boundaries currently stand.
  94   // _max_gen_size is still used as that value.
  95   double max_gc_pause_sec = ((double) MaxGCPauseMillis)/1000.0;
  96   double max_gc_minor_pause_sec = ((double) MaxGCMinorPauseMillis)/1000.0;
  97 
  98   _gens = new AdjoiningGenerations(heap_rs, _collector_policy, generation_alignment());
  99 
 100   _old_gen = _gens->old_gen();
 101   _young_gen = _gens->young_gen();
 102 
 103   const size_t eden_capacity = _young_gen->eden_space()->capacity_in_bytes();
 104   const size_t old_capacity = _old_gen->capacity_in_bytes();
 105   const size_t initial_promo_size = MIN2(eden_capacity, old_capacity);
 106   _size_policy =
 107     new PSAdaptiveSizePolicy(eden_capacity,




  61 
  62   const size_t heap_size = _collector_policy->max_heap_byte_size();
  63 
  64   ReservedSpace heap_rs = Universe::reserve_heap(heap_size, _collector_policy->heap_alignment());
  65   MemTracker::record_virtual_memory_type((address)heap_rs.base(), mtJavaHeap);
  66 
  67   os::trace_page_sizes("ps main", _collector_policy->min_heap_byte_size(),
  68                        heap_size, generation_alignment(),
  69                        heap_rs.base(),
  70                        heap_rs.size());
  71   if (!heap_rs.is_reserved()) {
  72     vm_shutdown_during_initialization(
  73       "Could not reserve enough space for object heap");
  74     return JNI_ENOMEM;
  75   }
  76 
  77   initialize_reserved_region((HeapWord*)heap_rs.base(), (HeapWord*)(heap_rs.base() + heap_rs.size()));
  78 
  79   CardTableExtension* const barrier_set = new CardTableExtension(reserved_region());
  80   barrier_set->initialize();
  81   set_barrier_set(barrier_set);






  82 
  83   // Make up the generations
  84   // Calculate the maximum size that a generation can grow.  This
  85   // includes growth into the other generation.  Note that the
  86   // parameter _max_gen_size is kept as the maximum
  87   // size of the generation as the boundaries currently stand.
  88   // _max_gen_size is still used as that value.
  89   double max_gc_pause_sec = ((double) MaxGCPauseMillis)/1000.0;
  90   double max_gc_minor_pause_sec = ((double) MaxGCMinorPauseMillis)/1000.0;
  91 
  92   _gens = new AdjoiningGenerations(heap_rs, _collector_policy, generation_alignment());
  93 
  94   _old_gen = _gens->old_gen();
  95   _young_gen = _gens->young_gen();
  96 
  97   const size_t eden_capacity = _young_gen->eden_space()->capacity_in_bytes();
  98   const size_t old_capacity = _old_gen->capacity_in_bytes();
  99   const size_t initial_promo_size = MIN2(eden_capacity, old_capacity);
 100   _size_policy =
 101     new PSAdaptiveSizePolicy(eden_capacity,


< prev index next >