@@ -73,10 +73,10 @@ bool ZDirector::rule_warmup() const {
// Perform GC if heap usage passes 10/20/30% and no other GC has been
// performed yet. This allows us to get some early samples of the GC
// duration, which is needed by the other rules.
const size_t max_capacity = ZHeap::heap ()->soft_max_capacity ();
const size_t soft_max_capacity = ZHeap::heap ()->soft_max_capacity ();
const size_t used = ZHeap::heap ()->used ();
const double used_threshold_percent = (ZStatCycle::nwarmup_cycles () + 1 ) * 0.1 ;
const size_t used_threshold = max_capacity * used_threshold_percent;
const size_t used_threshold = soft_max_capacity * used_threshold_percent;
log_debug (gc, director)(" Rule: Warmup %.0f%%, Used: " SIZE_FORMAT " MB, UsedThreshold: " SIZE_FORMAT " MB" ,
used_threshold_percent * 100 , used / M, used_threshold / M);
@@ -99,10 +99,10 @@ bool ZDirector::rule_allocation_rate() const {
// Calculate amount of free memory available to Java threads. Note that
// the heap reserve is not available to Java threads and is therefore not
// considered part of the free memory.
const size_t max_capacity = ZHeap::heap ()->soft_max_capacity ();
const size_t soft_max_capacity = ZHeap::heap ()->soft_max_capacity ();
const size_t max_reserve = ZHeap::heap ()->max_reserve ();
const size_t used = ZHeap::heap ()->used ();
const size_t free_with_reserve = max_capacity - MIN2 (max_capacity , used);
const size_t free_with_reserve = soft_max_capacity - MIN2 (soft_max_capacity , used);
const size_t free = free_with_reserve - MIN2 (free_with_reserve, max_reserve);
// Calculate time until OOM given the max allocation rate and the amount
@@ -183,12 +183,12 @@ bool ZDirector::rule_high_usage() const {
// Calculate amount of free memory available to Java threads. Note that
// the heap reserve is not available to Java threads and is therefore not
// considered part of the free memory.
const size_t max_capacity = ZHeap::heap ()->soft_max_capacity ();
const size_t soft_max_capacity = ZHeap::heap ()->soft_max_capacity ();
const size_t max_reserve = ZHeap::heap ()->max_reserve ();
const size_t used = ZHeap::heap ()->used ();
const size_t free_with_reserve = max_capacity - used;
const size_t free_with_reserve = soft_max_capacity - used;
const size_t free = free_with_reserve - MIN2 (free_with_reserve, max_reserve);
const double free_percent = percent_of (free, max_capacity );
const double free_percent = percent_of (free, soft_max_capacity );
log_debug (gc, director)(" Rule: High Usage, Free: " SIZE_FORMAT " MB(%.1f%%)" ,
free / M, free_percent);