src/share/vm/gc_implementation/shared/allocationStats.hpp

Print this page
rev 6220 : [mq]: printffmt_size.gc.patch


 103            "Conservation Principle");
 104     if (inter_sweep_current > _threshold) {
 105       ssize_t demand = prev_sweep() - (ssize_t)count + split_births() + coal_births()
 106                        - split_deaths() - coal_deaths();
 107       assert(demand >= 0,
 108              err_msg("Demand (" SSIZE_FORMAT ") should be non-negative for "
 109                      PTR_FORMAT " (size=" SIZE_FORMAT ")",
 110                      demand, this, count));
 111       // Defensive: adjust for imprecision in event counting
 112       if (demand < 0) {
 113         demand = 0;
 114       }
 115       float old_rate = _demand_rate_estimate.padded_average();
 116       float rate = ((float)demand)/inter_sweep_current;
 117       _demand_rate_estimate.sample(rate);
 118       float new_rate = _demand_rate_estimate.padded_average();
 119       ssize_t old_desired = _desired;
 120       float delta_ise = (CMSExtrapolateSweep ? intra_sweep_estimate : 0.0);
 121       _desired = (ssize_t)(new_rate * (inter_sweep_estimate + delta_ise));
 122       if (PrintFLSStatistics > 1) {
 123         gclog_or_tty->print_cr("demand: %d, old_rate: %f, current_rate: %f, new_rate: %f, old_desired: %d, new_desired: %d",

 124                                 demand,     old_rate,     rate,             new_rate,     old_desired,     _desired);
 125       }
 126     }
 127   }
 128 
 129   ssize_t desired() const { return _desired; }
 130   void set_desired(ssize_t v) { _desired = v; }
 131 
 132   ssize_t coal_desired() const { return _coal_desired; }
 133   void set_coal_desired(ssize_t v) { _coal_desired = v; }
 134 
 135   ssize_t surplus() const { return _surplus; }
 136   void set_surplus(ssize_t v) { _surplus = v; }
 137   void increment_surplus() { _surplus++; }
 138   void decrement_surplus() { _surplus--; }
 139 
 140   ssize_t bfr_surp() const { return _bfr_surp; }
 141   void set_bfr_surp(ssize_t v) { _bfr_surp = v; }
 142   ssize_t prev_sweep() const { return _prev_sweep; }
 143   void set_prev_sweep(ssize_t v) { _prev_sweep = v; }




 103            "Conservation Principle");
 104     if (inter_sweep_current > _threshold) {
 105       ssize_t demand = prev_sweep() - (ssize_t)count + split_births() + coal_births()
 106                        - split_deaths() - coal_deaths();
 107       assert(demand >= 0,
 108              err_msg("Demand (" SSIZE_FORMAT ") should be non-negative for "
 109                      PTR_FORMAT " (size=" SIZE_FORMAT ")",
 110                      demand, this, count));
 111       // Defensive: adjust for imprecision in event counting
 112       if (demand < 0) {
 113         demand = 0;
 114       }
 115       float old_rate = _demand_rate_estimate.padded_average();
 116       float rate = ((float)demand)/inter_sweep_current;
 117       _demand_rate_estimate.sample(rate);
 118       float new_rate = _demand_rate_estimate.padded_average();
 119       ssize_t old_desired = _desired;
 120       float delta_ise = (CMSExtrapolateSweep ? intra_sweep_estimate : 0.0);
 121       _desired = (ssize_t)(new_rate * (inter_sweep_estimate + delta_ise));
 122       if (PrintFLSStatistics > 1) {
 123         gclog_or_tty->print_cr("demand: " SSIZE_FORMAT ", old_rate: %f, current_rate: %f, "
 124                                "new_rate: %f, old_desired: " SSIZE_FORMAT ", new_desired: " SSIZE_FORMAT,
 125                                 demand, old_rate, rate, new_rate, old_desired, _desired);
 126       }
 127     }
 128   }
 129 
 130   ssize_t desired() const { return _desired; }
 131   void set_desired(ssize_t v) { _desired = v; }
 132 
 133   ssize_t coal_desired() const { return _coal_desired; }
 134   void set_coal_desired(ssize_t v) { _coal_desired = v; }
 135 
 136   ssize_t surplus() const { return _surplus; }
 137   void set_surplus(ssize_t v) { _surplus = v; }
 138   void increment_surplus() { _surplus++; }
 139   void decrement_surplus() { _surplus--; }
 140 
 141   ssize_t bfr_surp() const { return _bfr_surp; }
 142   void set_bfr_surp(ssize_t v) { _bfr_surp = v; }
 143   ssize_t prev_sweep() const { return _prev_sweep; }
 144   void set_prev_sweep(ssize_t v) { _prev_sweep = v; }