< prev index next >

src/share/vm/gc/serial/tenuredGeneration.cpp

Print this page




 150     if (used_before_gc >= _used_at_prologue) {
 151       size_t promoted_in_bytes = used_before_gc - _used_at_prologue;
 152       gc_stats()->avg_promoted()->sample(promoted_in_bytes);
 153     }
 154   }
 155 }
 156 
 157 void TenuredGeneration::update_counters() {
 158   if (UsePerfData) {
 159     _space_counters->update_all();
 160     _gen_counters->update_all();
 161   }
 162 }
 163 
 164 bool TenuredGeneration::promotion_attempt_is_safe(size_t max_promotion_in_bytes) const {
 165   size_t available = max_contiguous_available();
 166   size_t av_promo  = (size_t)gc_stats()->avg_promoted()->padded_average();
 167   bool   res = (available >= av_promo) || (available >= max_promotion_in_bytes);
 168   if (PrintGC && Verbose) {
 169     gclog_or_tty->print_cr(
 170       "Tenured: promo attempt is%s safe: available("SIZE_FORMAT") %s av_promo("SIZE_FORMAT"),"
 171       "max_promo("SIZE_FORMAT")",
 172       res? "":" not", available, res? ">=":"<",
 173       av_promo, max_promotion_in_bytes);
 174   }
 175   return res;
 176 }
 177 
 178 void TenuredGeneration::collect(bool   full,
 179                                 bool   clear_all_soft_refs,
 180                                 size_t size,
 181                                 bool   is_tlab) {
 182   GenCollectedHeap* gch = GenCollectedHeap::heap();
 183 
 184   // Temporarily expand the span of our ref processor, so
 185   // refs discovery is over the entire heap, not just this generation
 186   ReferenceProcessorSpanMutator
 187     x(ref_processor(), gch->reserved_region());
 188 
 189   STWGCTimer* gc_timer = GenMarkSweep::gc_timer();
 190   gc_timer->register_gc_start();
 191 




 150     if (used_before_gc >= _used_at_prologue) {
 151       size_t promoted_in_bytes = used_before_gc - _used_at_prologue;
 152       gc_stats()->avg_promoted()->sample(promoted_in_bytes);
 153     }
 154   }
 155 }
 156 
 157 void TenuredGeneration::update_counters() {
 158   if (UsePerfData) {
 159     _space_counters->update_all();
 160     _gen_counters->update_all();
 161   }
 162 }
 163 
 164 bool TenuredGeneration::promotion_attempt_is_safe(size_t max_promotion_in_bytes) const {
 165   size_t available = max_contiguous_available();
 166   size_t av_promo  = (size_t)gc_stats()->avg_promoted()->padded_average();
 167   bool   res = (available >= av_promo) || (available >= max_promotion_in_bytes);
 168   if (PrintGC && Verbose) {
 169     gclog_or_tty->print_cr(
 170       "Tenured: promo attempt is%s safe: available(" SIZE_FORMAT ") %s av_promo(" SIZE_FORMAT "),"
 171       "max_promo(" SIZE_FORMAT ")",
 172       res? "":" not", available, res? ">=":"<",
 173       av_promo, max_promotion_in_bytes);
 174   }
 175   return res;
 176 }
 177 
 178 void TenuredGeneration::collect(bool   full,
 179                                 bool   clear_all_soft_refs,
 180                                 size_t size,
 181                                 bool   is_tlab) {
 182   GenCollectedHeap* gch = GenCollectedHeap::heap();
 183 
 184   // Temporarily expand the span of our ref processor, so
 185   // refs discovery is over the entire heap, not just this generation
 186   ReferenceProcessorSpanMutator
 187     x(ref_processor(), gch->reserved_region());
 188 
 189   STWGCTimer* gc_timer = GenMarkSweep::gc_timer();
 190   gc_timer->register_gc_start();
 191 


< prev index next >