< prev index next >

src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp

Print this page




  24 #include "precompiled.hpp"
  25 
  26 #include "gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp"
  27 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
  28 #include "gc/shenandoah/shenandoahFreeSet.hpp"
  29 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
  30 #include "gc/shenandoah/shenandoahHeuristics.hpp"
  31 #include "gc/shenandoah/shenandoahTraversalGC.hpp"
  32 #include "logging/log.hpp"
  33 #include "logging/logTag.hpp"
  34 #include "utilities/quickSort.hpp"
  35 
  36 ShenandoahTraversalHeuristics::ShenandoahTraversalHeuristics() : ShenandoahHeuristics(),
  37   _last_cset_select(0)
  38  {
  39   FLAG_SET_DEFAULT(ShenandoahSATBBarrier,            false);
  40   FLAG_SET_DEFAULT(ShenandoahStoreValEnqueueBarrier, true);
  41   FLAG_SET_DEFAULT(ShenandoahKeepAliveBarrier,       false);
  42   FLAG_SET_DEFAULT(ShenandoahAllowMixedAllocs,       false);
  43 







  44   SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent);
  45   SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent);
  46 
  47   // Final configuration checks
  48   SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier);
  49   SHENANDOAH_CHECK_FLAG_SET(ShenandoahStoreValEnqueueBarrier);
  50   SHENANDOAH_CHECK_FLAG_SET(ShenandoahCASBarrier);
  51   SHENANDOAH_CHECK_FLAG_SET(ShenandoahCloneBarrier);
  52 }
  53 
  54 bool ShenandoahTraversalHeuristics::should_start_normal_gc() const {
  55   return false;
  56 }
  57 
  58 bool ShenandoahTraversalHeuristics::is_experimental() {
  59   return true;
  60 }
  61 
  62 bool ShenandoahTraversalHeuristics::is_diagnostic() {
  63   return false;




  24 #include "precompiled.hpp"
  25 
  26 #include "gc/shenandoah/heuristics/shenandoahTraversalHeuristics.hpp"
  27 #include "gc/shenandoah/shenandoahCollectionSet.hpp"
  28 #include "gc/shenandoah/shenandoahFreeSet.hpp"
  29 #include "gc/shenandoah/shenandoahHeap.inline.hpp"
  30 #include "gc/shenandoah/shenandoahHeuristics.hpp"
  31 #include "gc/shenandoah/shenandoahTraversalGC.hpp"
  32 #include "logging/log.hpp"
  33 #include "logging/logTag.hpp"
  34 #include "utilities/quickSort.hpp"
  35 
  36 ShenandoahTraversalHeuristics::ShenandoahTraversalHeuristics() : ShenandoahHeuristics(),
  37   _last_cset_select(0)
  38  {
  39   FLAG_SET_DEFAULT(ShenandoahSATBBarrier,            false);
  40   FLAG_SET_DEFAULT(ShenandoahStoreValEnqueueBarrier, true);
  41   FLAG_SET_DEFAULT(ShenandoahKeepAliveBarrier,       false);
  42   FLAG_SET_DEFAULT(ShenandoahAllowMixedAllocs,       false);
  43 
  44   SHENANDOAH_ERGO_OVERRIDE_DEFAULT(ShenandoahRefProcFrequency, 1);
  45 
  46   // Adjust class unloading settings only if globally enabled.
  47   if (ClassUnloadingWithConcurrentMark) {
  48     SHENANDOAH_ERGO_OVERRIDE_DEFAULT(ShenandoahUnloadClassesFrequency, 1);
  49   }
  50 
  51   SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent);
  52   SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent);
  53 
  54   // Final configuration checks
  55   SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier);
  56   SHENANDOAH_CHECK_FLAG_SET(ShenandoahStoreValEnqueueBarrier);
  57   SHENANDOAH_CHECK_FLAG_SET(ShenandoahCASBarrier);
  58   SHENANDOAH_CHECK_FLAG_SET(ShenandoahCloneBarrier);
  59 }
  60 
  61 bool ShenandoahTraversalHeuristics::should_start_normal_gc() const {
  62   return false;
  63 }
  64 
  65 bool ShenandoahTraversalHeuristics::is_experimental() {
  66   return true;
  67 }
  68 
  69 bool ShenandoahTraversalHeuristics::is_diagnostic() {
  70   return false;


< prev index next >