< prev index next >
src/share/vm/gc/shared/adaptiveSizePolicy.hpp
Print this page
@@ -26,10 +26,11 @@
#define SHARE_VM_GC_SHARED_ADAPTIVESIZEPOLICY_HPP
#include "gc/shared/collectedHeap.hpp"
#include "gc/shared/gcCause.hpp"
#include "gc/shared/gcUtil.hpp"
+#include "logging/log.hpp"
#include "memory/allocation.hpp"
#include "memory/universe.hpp"
// This class keeps statistical information and computes the
// size of the heap.
@@ -498,60 +499,39 @@
UseAdaptiveSizePolicyWithSystemGC) ||
GCCause::is_allocation_failure_gc(cause));
}
// Printing support
- virtual bool print_adaptive_size_policy_on(outputStream* st) const;
- bool print_adaptive_size_policy_on(outputStream* st,
- uint tenuring_threshold) const;
+ virtual bool print() const;
+ void print_tenuring_threshold(uint new_tenuring_threshold) const;
};
// Class that can be used to print information about the
// adaptive size policy at intervals specified by
// AdaptiveSizePolicyOutputInterval. Only print information
// if an adaptive size policy is in use.
class AdaptiveSizePolicyOutput : StackObj {
- AdaptiveSizePolicy* _size_policy;
- bool _do_print;
- bool print_test(uint count) {
- // A count of zero is a special value that indicates that the
- // interval test should be ignored. An interval is of zero is
- // a special value that indicates that the interval test should
- // always fail (never do the print based on the interval test).
- return PrintGCDetails &&
+ static bool enabled() {
+ return UseParallelGC &&
UseAdaptiveSizePolicy &&
- UseParallelGC &&
- (AdaptiveSizePolicyOutputInterval > 0) &&
- ((count == 0) ||
- ((count % AdaptiveSizePolicyOutputInterval) == 0));
+ Log<LOG_TAGS(gc, ergo)>::is_debug();
}
public:
- // The special value of a zero count can be used to ignore
- // the count test.
- AdaptiveSizePolicyOutput(uint count) {
- if (UseAdaptiveSizePolicy && (AdaptiveSizePolicyOutputInterval > 0)) {
- CollectedHeap* heap = Universe::heap();
- _size_policy = heap->size_policy();
- _do_print = print_test(count);
- } else {
- _size_policy = NULL;
- _do_print = false;
- }
- }
- AdaptiveSizePolicyOutput(AdaptiveSizePolicy* size_policy,
- uint count) :
- _size_policy(size_policy) {
- if (UseAdaptiveSizePolicy && (AdaptiveSizePolicyOutputInterval > 0)) {
- _do_print = print_test(count);
- } else {
- _do_print = false;
- }
- }
- ~AdaptiveSizePolicyOutput() {
- if (_do_print) {
- assert(UseAdaptiveSizePolicy, "Should not be in use");
- _size_policy->print_adaptive_size_policy_on(gclog_or_tty);
+ static void print() {
+ if (enabled()) {
+ Universe::heap()->size_policy()->print();
+ }
+ }
+
+ static void print(AdaptiveSizePolicy* size_policy, uint count) {
+ bool do_print =
+ enabled() &&
+ (AdaptiveSizePolicyOutputInterval > 0) &&
+ (count % AdaptiveSizePolicyOutputInterval) == 0;
+
+ if (do_print) {
+ size_policy->print();
}
}
};
#endif // SHARE_VM_GC_SHARED_ADAPTIVESIZEPOLICY_HPP
< prev index next >