< prev index next >

src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.inline.hpp

Print this page
rev 7209 : [mq]: inccms
rev 7210 : [mq]: icms-reviews


 316   _cms_timer.stop();
 317 
 318   // This is just an approximate value, but is good enough.
 319   _cms_used_at_cms_begin = _cms_used_at_gc0_end;
 320 
 321   _cms_period = AdaptiveWeightedAverage::exp_avg((float)_cms_period,
 322     (float) _cms_timer.seconds(), _cms_alpha);
 323   _cms_begin_time.update();
 324 
 325   _cms_timer.reset();
 326   _cms_timer.start();
 327 }
 328 
 329 inline void CMSStats::record_cms_end() {
 330   _cms_timer.stop();
 331 
 332   float cur_duration = _cms_timer.seconds();
 333   _cms_duration = AdaptiveWeightedAverage::exp_avg(_cms_duration,
 334     cur_duration, _cms_alpha);
 335 
 336   // Avoid division by 0.
 337   const size_t cms_used_mb = MAX2(_cms_used_at_cms_begin / M, (size_t)1);
 338   _cms_duration_per_mb = AdaptiveWeightedAverage::exp_avg(_cms_duration_per_mb,
 339                                  cur_duration / cms_used_mb,
 340                                  _cms_alpha);
 341 
 342   _cms_end_time.update();
 343   _cms_alpha = _saved_alpha;
 344   _allow_duty_cycle_reduction = true;
 345   _valid_bits |= _CMS_VALID;
 346 
 347   _cms_timer.start();
 348 }
 349 
 350 inline double CMSStats::cms_time_since_begin() const {
 351   return _cms_begin_time.seconds();
 352 }
 353 
 354 inline double CMSStats::cms_time_since_end() const {
 355   return _cms_end_time.seconds();
 356 }
 357 
 358 inline double CMSStats::promotion_rate() const {
 359   assert(valid(), "statistics not valid yet");
 360   return gc0_promoted() / gc0_period();
 361 }




 316   _cms_timer.stop();
 317 
 318   // This is just an approximate value, but is good enough.
 319   _cms_used_at_cms_begin = _cms_used_at_gc0_end;
 320 
 321   _cms_period = AdaptiveWeightedAverage::exp_avg((float)_cms_period,
 322     (float) _cms_timer.seconds(), _cms_alpha);
 323   _cms_begin_time.update();
 324 
 325   _cms_timer.reset();
 326   _cms_timer.start();
 327 }
 328 
 329 inline void CMSStats::record_cms_end() {
 330   _cms_timer.stop();
 331 
 332   float cur_duration = _cms_timer.seconds();
 333   _cms_duration = AdaptiveWeightedAverage::exp_avg(_cms_duration,
 334     cur_duration, _cms_alpha);
 335 






 336   _cms_end_time.update();
 337   _cms_alpha = _saved_alpha;
 338   _allow_duty_cycle_reduction = true;
 339   _valid_bits |= _CMS_VALID;
 340 
 341   _cms_timer.start();
 342 }
 343 
 344 inline double CMSStats::cms_time_since_begin() const {
 345   return _cms_begin_time.seconds();
 346 }
 347 
 348 inline double CMSStats::cms_time_since_end() const {
 349   return _cms_end_time.seconds();
 350 }
 351 
 352 inline double CMSStats::promotion_rate() const {
 353   assert(valid(), "statistics not valid yet");
 354   return gc0_promoted() / gc0_period();
 355 }


< prev index next >