113 // Update the interval time
114 _major_timer.stop();
115 // Save most recent collection time
116 _latest_major_mutator_interval_seconds = _major_timer.seconds();
117 _major_timer.reset();
118 _major_timer.start();
119 }
120
121 void PSAdaptiveSizePolicy::update_minor_pause_old_estimator(
122 double minor_pause_in_ms) {
123 double promo_size_in_mbytes = ((double)_promo_size)/((double)M);
124 _minor_pause_old_estimator->update(promo_size_in_mbytes,
125 minor_pause_in_ms);
126 }
127
128 void PSAdaptiveSizePolicy::major_collection_end(size_t amount_live,
129 GCCause::Cause gc_cause) {
130 // Update the pause time.
131 _major_timer.stop();
132
133 if (gc_cause != GCCause::_java_lang_system_gc ||
134 UseAdaptiveSizePolicyWithSystemGC) {
135 double major_pause_in_seconds = _major_timer.seconds();
136 double major_pause_in_ms = major_pause_in_seconds * MILLIUNITS;
137
138 // Sample for performance counter
139 _avg_major_pause->sample(major_pause_in_seconds);
140
141 // Cost of collection (unit-less)
142 double collection_cost = 0.0;
143 if ((_latest_major_mutator_interval_seconds > 0.0) &&
144 (major_pause_in_seconds > 0.0)) {
145 double interval_in_seconds =
146 _latest_major_mutator_interval_seconds + major_pause_in_seconds;
147 collection_cost =
148 major_pause_in_seconds / interval_in_seconds;
149 avg_major_gc_cost()->sample(collection_cost);
150
151 // Sample for performance counter
152 _avg_major_interval->sample(interval_in_seconds);
153 }
154
|
113 // Update the interval time
114 _major_timer.stop();
115 // Save most recent collection time
116 _latest_major_mutator_interval_seconds = _major_timer.seconds();
117 _major_timer.reset();
118 _major_timer.start();
119 }
120
121 void PSAdaptiveSizePolicy::update_minor_pause_old_estimator(
122 double minor_pause_in_ms) {
123 double promo_size_in_mbytes = ((double)_promo_size)/((double)M);
124 _minor_pause_old_estimator->update(promo_size_in_mbytes,
125 minor_pause_in_ms);
126 }
127
128 void PSAdaptiveSizePolicy::major_collection_end(size_t amount_live,
129 GCCause::Cause gc_cause) {
130 // Update the pause time.
131 _major_timer.stop();
132
133 if (should_update_promo_stats(gc_cause)) {
134 double major_pause_in_seconds = _major_timer.seconds();
135 double major_pause_in_ms = major_pause_in_seconds * MILLIUNITS;
136
137 // Sample for performance counter
138 _avg_major_pause->sample(major_pause_in_seconds);
139
140 // Cost of collection (unit-less)
141 double collection_cost = 0.0;
142 if ((_latest_major_mutator_interval_seconds > 0.0) &&
143 (major_pause_in_seconds > 0.0)) {
144 double interval_in_seconds =
145 _latest_major_mutator_interval_seconds + major_pause_in_seconds;
146 collection_cost =
147 major_pause_in_seconds / interval_in_seconds;
148 avg_major_gc_cost()->sample(collection_cost);
149
150 // Sample for performance counter
151 _avg_major_interval->sample(interval_in_seconds);
152 }
153
|