< prev index next >

src/hotspot/share/gc/shared/adaptiveSizePolicy.cpp

Print this page

        

*** 25,38 **** --- 25,40 ---- #include "precompiled.hpp" #include "gc/shared/adaptiveSizePolicy.hpp" #include "gc/shared/collectorPolicy.hpp" #include "gc/shared/gcCause.hpp" #include "gc/shared/gcUtil.inline.hpp" + #include "gc/shared/softRefPolicy.hpp" #include "gc/shared/workgroup.hpp" #include "logging/log.hpp" #include "runtime/timer.hpp" #include "utilities/ostream.hpp" + elapsedTimer AdaptiveSizePolicy::_minor_timer; elapsedTimer AdaptiveSizePolicy::_major_timer; bool AdaptiveSizePolicy::_debug_perturbation = false; // The throughput goal is implemented as
*** 407,417 **** size_t eden_live, size_t max_old_gen_size, size_t max_eden_size, bool is_full_gc, GCCause::Cause gc_cause, ! CollectorPolicy* collector_policy) { // Ignore explicit GC's. Exiting here does not set the flag and // does not reset the count. Updating of the averages for system // GC's is still controlled by UseAdaptiveSizePolicyWithSystemGC. if (GCCause::is_user_requested_gc(gc_cause) || --- 409,419 ---- size_t eden_live, size_t max_old_gen_size, size_t max_eden_size, bool is_full_gc, GCCause::Cause gc_cause, ! SoftRefPolicy* soft_ref_policy) { // Ignore explicit GC's. Exiting here does not set the flag and // does not reset the count. Updating of the averages for system // GC's is still controlled by UseAdaptiveSizePolicyWithSystemGC. if (GCCause::is_user_requested_gc(gc_cause) ||
*** 504,514 **** // throw an out-of-memory before all SoftRef's have been // cleared, set _should_clear_all_soft_refs in CollectorPolicy. // The clearing will be done on the next GC. bool near_limit = gc_overhead_limit_near(); if (near_limit) { ! collector_policy->set_should_clear_all_soft_refs(true); log_trace(gc, ergo)("Nearing GC overhead limit, will be clearing all SoftReference"); } } } // Set this even when the overhead limit will not --- 506,516 ---- // throw an out-of-memory before all SoftRef's have been // cleared, set _should_clear_all_soft_refs in CollectorPolicy. // The clearing will be done on the next GC. bool near_limit = gc_overhead_limit_near(); if (near_limit) { ! soft_ref_policy->set_should_clear_all_soft_refs(true); log_trace(gc, ergo)("Nearing GC overhead limit, will be clearing all SoftReference"); } } } // Set this even when the overhead limit will not
< prev index next >