227 void AdaptiveSizePolicy::minor_collection_begin() {
228 // Update the interval time
229 _minor_timer.stop();
230 // Save most recent collection time
231 _latest_minor_mutator_interval_seconds = _minor_timer.seconds();
232 _minor_timer.reset();
233 _minor_timer.start();
234 }
235
236 void AdaptiveSizePolicy::update_minor_pause_young_estimator(
237 double minor_pause_in_ms) {
238 double eden_size_in_mbytes = ((double)_eden_size)/((double)M);
239 _minor_pause_young_estimator->update(eden_size_in_mbytes,
240 minor_pause_in_ms);
241 }
242
243 void AdaptiveSizePolicy::minor_collection_end(GCCause::Cause gc_cause) {
244 // Update the pause time.
245 _minor_timer.stop();
246
247 if (gc_cause != GCCause::_java_lang_system_gc ||
248 UseAdaptiveSizePolicyWithSystemGC) {
249 double minor_pause_in_seconds = _minor_timer.seconds();
250 double minor_pause_in_ms = minor_pause_in_seconds * MILLIUNITS;
251
252 // Sample for performance counter
253 _avg_minor_pause->sample(minor_pause_in_seconds);
254
255 // Cost of collection (unit-less)
256 double collection_cost = 0.0;
257 if ((_latest_minor_mutator_interval_seconds > 0.0) &&
258 (minor_pause_in_seconds > 0.0)) {
259 double interval_in_seconds =
260 _latest_minor_mutator_interval_seconds + minor_pause_in_seconds;
261 collection_cost =
262 minor_pause_in_seconds / interval_in_seconds;
263 _avg_minor_gc_cost->sample(collection_cost);
264 // Sample for performance counter
265 _avg_minor_interval->sample(interval_in_seconds);
266 }
267
|
227 void AdaptiveSizePolicy::minor_collection_begin() {
228 // Update the interval time
229 _minor_timer.stop();
230 // Save most recent collection time
231 _latest_minor_mutator_interval_seconds = _minor_timer.seconds();
232 _minor_timer.reset();
233 _minor_timer.start();
234 }
235
236 void AdaptiveSizePolicy::update_minor_pause_young_estimator(
237 double minor_pause_in_ms) {
238 double eden_size_in_mbytes = ((double)_eden_size)/((double)M);
239 _minor_pause_young_estimator->update(eden_size_in_mbytes,
240 minor_pause_in_ms);
241 }
242
243 void AdaptiveSizePolicy::minor_collection_end(GCCause::Cause gc_cause) {
244 // Update the pause time.
245 _minor_timer.stop();
246
247 if (!GCCause::is_user_requested_gc(gc_cause) ||
248 UseAdaptiveSizePolicyWithSystemGC) {
249 double minor_pause_in_seconds = _minor_timer.seconds();
250 double minor_pause_in_ms = minor_pause_in_seconds * MILLIUNITS;
251
252 // Sample for performance counter
253 _avg_minor_pause->sample(minor_pause_in_seconds);
254
255 // Cost of collection (unit-less)
256 double collection_cost = 0.0;
257 if ((_latest_minor_mutator_interval_seconds > 0.0) &&
258 (minor_pause_in_seconds > 0.0)) {
259 double interval_in_seconds =
260 _latest_minor_mutator_interval_seconds + minor_pause_in_seconds;
261 collection_cost =
262 minor_pause_in_seconds / interval_in_seconds;
263 _avg_minor_gc_cost->sample(collection_cost);
264 // Sample for performance counter
265 _avg_minor_interval->sample(interval_in_seconds);
266 }
267
|