31 #include "memory/allocation.hpp" 32 #include "utilities/macros.hpp" 33 34 // This class (or more correctly, subtypes of this class) 35 // are used to define global garbage collector attributes. 36 // This includes initialization of generations and any other 37 // shared resources they may need. 38 // 39 // In general, all flag adjustment and validation should be 40 // done in initialize_flags(), which is called prior to 41 // initialize_size_info(). 42 // 43 // This class is not fully developed yet. As more collector(s) 44 // are added, it is expected that we will come across further 45 // behavior that requires global attention. The correct place 46 // to deal with those issues is this class. 47 48 // Forward declarations. 49 class GenCollectorPolicy; 50 class AdaptiveSizePolicy; 51 #if INCLUDE_ALL_GCS 52 class ConcurrentMarkSweepPolicy; 53 class G1CollectorPolicy; 54 #endif // INCLUDE_ALL_GCS 55 56 class MarkSweepPolicy; 57 58 class CollectorPolicy : public CHeapObj<mtGC> { 59 protected: 60 virtual void initialize_alignments() = 0; 61 virtual void initialize_flags(); 62 virtual void initialize_size_info(); 63 64 DEBUG_ONLY(virtual void assert_flags();) 65 DEBUG_ONLY(virtual void assert_size_info();) 66 67 size_t _initial_heap_byte_size; 68 size_t _max_heap_byte_size; 69 size_t _min_heap_byte_size; 70 71 size_t _space_alignment; 72 size_t _heap_alignment; 73 74 CollectorPolicy(); 75 | 31 #include "memory/allocation.hpp" 32 #include "utilities/macros.hpp" 33 34 // This class (or more correctly, subtypes of this class) 35 // are used to define global garbage collector attributes. 36 // This includes initialization of generations and any other 37 // shared resources they may need. 38 // 39 // In general, all flag adjustment and validation should be 40 // done in initialize_flags(), which is called prior to 41 // initialize_size_info(). 42 // 43 // This class is not fully developed yet. As more collector(s) 44 // are added, it is expected that we will come across further 45 // behavior that requires global attention. The correct place 46 // to deal with those issues is this class. 47 48 // Forward declarations. 49 class GenCollectorPolicy; 50 class AdaptiveSizePolicy; 51 class ConcurrentMarkSweepPolicy; 52 class G1CollectorPolicy; 53 class MarkSweepPolicy; 54 55 class CollectorPolicy : public CHeapObj<mtGC> { 56 protected: 57 virtual void initialize_alignments() = 0; 58 virtual void initialize_flags(); 59 virtual void initialize_size_info(); 60 61 DEBUG_ONLY(virtual void assert_flags();) 62 DEBUG_ONLY(virtual void assert_size_info();) 63 64 size_t _initial_heap_byte_size; 65 size_t _max_heap_byte_size; 66 size_t _min_heap_byte_size; 67 68 size_t _space_alignment; 69 size_t _heap_alignment; 70 71 CollectorPolicy(); 72 |