--- old/src/share/vm/gc/shared/plab.hpp 2015-08-11 20:36:20.938637699 +0200 +++ new/src/share/vm/gc/shared/plab.hpp 2015-08-11 20:36:20.861635411 +0200 @@ -26,8 +26,8 @@ #define SHARE_VM_GC_SHARED_PLAB_HPP #include "gc/shared/gcUtil.hpp" -#include "memory/allocation.hpp" -#include "runtime/atomic.hpp" +#include "memory/allocation.inline.hpp" +#include "runtime/atomic.inline.hpp" #include "utilities/globalDefinitions.hpp" // Forward declarations. @@ -149,7 +149,8 @@ }; // PLAB book-keeping. -class PLABStats VALUE_OBJ_CLASS_SPEC { +class PLABStats : public CHeapObj { + protected: size_t _allocated; // Total allocated size_t _wasted; // of which wasted (internal fragmentation) size_t _undo_wasted; // of which wasted on undo (is not used for calculation of PLAB size) @@ -158,7 +159,7 @@ AdaptiveWeightedAverage _filter; // Integrator with decay - void reset() { + virtual void reset() { _allocated = 0; _wasted = 0; _undo_wasted = 0; @@ -174,6 +175,8 @@ _filter(wt) { } + virtual ~PLABStats() { } + static const size_t min_size() { return PLAB::min_size(); } @@ -187,7 +190,7 @@ // Updates the current desired PLAB size. Computes the new desired PLAB size with one gc worker thread, // updates _desired_plab_sz and clears sensor accumulators. - void adjust_desired_plab_sz(); + virtual void adjust_desired_plab_sz(); void add_allocated(size_t v) { Atomic::add_ptr(v, &_allocated);