< prev index next >

src/hotspot/share/gc/shared/gcPolicyCounters.hpp

Print this page
rev 53341 : 8212206: Refactor AdaptiveSizePolicy to separate out code related to GC overhead
Summary: Move check_gc_overhead_limit() and related code to its own class
Reviewed-by:


  24 
  25 #ifndef SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP
  26 #define SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP
  27 
  28 #include "runtime/perfData.hpp"
  29 
  30 // GCPolicyCounters is a holder class for performance counters
  31 // that track a generation
  32 
  33 class GCPolicyCounters: public CHeapObj<mtGC> {
  34   friend class VMStructs;
  35 
  36   // Constant PerfData types don't need to retain a reference.
  37   // However, it's a good idea to document them here.
  38   // PerfStringConstant* _name;
  39   // PerfStringConstant* _collector_size;
  40   // PerfStringConstant* _generation_size;
  41 
  42   PerfVariable* _tenuring_threshold;
  43   PerfVariable* _desired_survivor_size;

  44 
  45   const char* _name_space;
  46 
  47 public:
  48   enum Name {
  49     NONE,
  50     GCPolicyCountersKind,
  51     GCAdaptivePolicyCountersKind,
  52     PSGCAdaptivePolicyCountersKind
  53   };
  54 
  55   GCPolicyCounters(const char* name, int collectors, int generations);
  56 
  57   inline PerfVariable* tenuring_threshold() const  {
  58     return _tenuring_threshold;
  59   }
  60 
  61   inline PerfVariable* desired_survivor_size() const  {
  62     return _desired_survivor_size;




  63   }
  64 
  65   const char* name_space() const { return _name_space; }
  66 
  67   virtual void update_counters() {}
  68 
  69   virtual GCPolicyCounters::Name kind() const {
  70     return GCPolicyCounters::GCPolicyCountersKind;
  71   }
  72 };
  73 
  74 #endif // SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP


  24 
  25 #ifndef SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP
  26 #define SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP
  27 
  28 #include "runtime/perfData.hpp"
  29 
  30 // GCPolicyCounters is a holder class for performance counters
  31 // that track a generation
  32 
  33 class GCPolicyCounters: public CHeapObj<mtGC> {
  34   friend class VMStructs;
  35 
  36   // Constant PerfData types don't need to retain a reference.
  37   // However, it's a good idea to document them here.
  38   // PerfStringConstant* _name;
  39   // PerfStringConstant* _collector_size;
  40   // PerfStringConstant* _generation_size;
  41 
  42   PerfVariable* _tenuring_threshold;
  43   PerfVariable* _desired_survivor_size;
  44   PerfVariable* _gc_overhead_limit_exceeded_counter;
  45 
  46   const char* _name_space;
  47 
  48 public:
  49   enum Name {
  50     NONE,
  51     GCPolicyCountersKind,
  52     GCAdaptivePolicyCountersKind,
  53     PSGCAdaptivePolicyCountersKind
  54   };
  55 
  56   GCPolicyCounters(const char* name, int collectors, int generations);
  57 
  58   inline PerfVariable* tenuring_threshold() const  {
  59     return _tenuring_threshold;
  60   }
  61 
  62   inline PerfVariable* desired_survivor_size() const  {
  63     return _desired_survivor_size;
  64   }
  65 
  66   inline PerfVariable* gc_overhead_limit_exceeded_counter() const {
  67     return _gc_overhead_limit_exceeded_counter;
  68   }
  69 
  70   const char* name_space() const { return _name_space; }
  71 
  72   virtual void update_counters() {}
  73 
  74   virtual GCPolicyCounters::Name kind() const {
  75     return GCPolicyCounters::GCPolicyCountersKind;
  76   }
  77 };
  78 
  79 #endif // SHARE_GC_SHARED_GCPOLICYCOUNTERS_HPP
< prev index next >