< prev index next >

src/hotspot/share/gc/parallel/adjoiningGenerations.hpp

8221260: Initialize more class members on construction, remove some unused ones
Reviewed-by:

32 
33 // Contains two generations that both use an AdjoiningVirtualSpaces.                                                       
34 // The two generations are adjacent in the reserved space for the                                                          
35 // heap.  Each generation has a virtual space and shrinking and                                                            
36 // expanding of the generations can still be down with that                                                                
37 // virtual space as was previously done.  If expanding of reserved                                                         
38 // size of a generation is required, the adjacent generation                                                               
39 // must be shrunk.  Adjusting the boundary between the generations                                                         
40 // is called for in this class.                                                                                            
41 
42 class AdjoiningGenerations : public CHeapObj<mtGC> {                                                                       
43   friend class VMStructs;                                                                                                  
44  private:                                                                                                                  
45   // Move boundary up to expand old gen.  Checks are made to                                                               
46   // determine if the move can be done with specified limits.                                                              
47   void request_old_gen_expansion(size_t desired_change_in_bytes);                                                          
48   // Move boundary down to expand young gen.                                                                               
49   bool request_young_gen_expansion(size_t desired_change_in_bytes);                                                        
50 
51  protected:                                                                                                                
                                                                                                                           
52    // The young generation and old generation, respectively                                                                
53    PSYoungGen* _young_gen;                                                                                                 
54    PSOldGen* _old_gen;                                                                                                     
55 
56    // The spaces used by the two generations.                                                                              
57    AdjoiningVirtualSpaces* _virtual_spaces;                                                                                
58 
59  public:                                                                                                                   
60   AdjoiningGenerations(ReservedSpace rs, GenerationSizer* policy, size_t alignment);                                       
61   AdjoiningGenerations();                                                                                                  
62 
63   // Accessors                                                                                                             
64   PSYoungGen* young_gen() { return _young_gen; }                                                                           
65   PSOldGen* old_gen() { return _old_gen; }                                                                                 
66 
67   AdjoiningVirtualSpaces* virtual_spaces() { return _virtual_spaces; }                                                     
68 
69   // Additional space is needed in the old generation.  Check                                                              
70   // the available space and attempt to move the boundary if more space                                                    
71   // is needed.  The growth is not guaranteed to occur.                                                                    
72   void adjust_boundary_for_old_gen_needs(size_t desired_change_in_bytes);                                                  
73   // Similarly for a growth of the young generation.                                                                       
74   void adjust_boundary_for_young_gen_needs(size_t eden_size, size_t survivor_size);                                        
75 
76   // Return the total byte size of the reserved space                                                                      
77   // for the adjoining generations.                                                                                        
78   virtual size_t reserved_byte_size();                                                                                     
79 
80   // Return new AdjoiningGenerations instance based on collector policy (specifically - whether heap is heterogeneous).    

32 
33 // Contains two generations that both use an AdjoiningVirtualSpaces.
34 // The two generations are adjacent in the reserved space for the
35 // heap.  Each generation has a virtual space and shrinking and
36 // expanding of the generations can still be down with that
37 // virtual space as was previously done.  If expanding of reserved
38 // size of a generation is required, the adjacent generation
39 // must be shrunk.  Adjusting the boundary between the generations
40 // is called for in this class.
41 
42 class AdjoiningGenerations : public CHeapObj<mtGC> {
43   friend class VMStructs;
44  private:
45   // Move boundary up to expand old gen.  Checks are made to
46   // determine if the move can be done with specified limits.
47   void request_old_gen_expansion(size_t desired_change_in_bytes);
48   // Move boundary down to expand young gen.
49   bool request_young_gen_expansion(size_t desired_change_in_bytes);
50 
51  protected:
52    AdjoiningGenerations();
53    // The young generation and old generation, respectively
54    PSYoungGen* _young_gen;
55    PSOldGen* _old_gen;
56 
57    // The spaces used by the two generations.
58    AdjoiningVirtualSpaces* _virtual_spaces;
59 
60  public:
61   AdjoiningGenerations(ReservedSpace rs, GenerationSizer* policy, size_t alignment);

62 
63   // Accessors
64   PSYoungGen* young_gen() { return _young_gen; }
65   PSOldGen* old_gen() { return _old_gen; }
66 
67   AdjoiningVirtualSpaces* virtual_spaces() { return _virtual_spaces; }
68 
69   // Additional space is needed in the old generation.  Check
70   // the available space and attempt to move the boundary if more space
71   // is needed.  The growth is not guaranteed to occur.
72   void adjust_boundary_for_old_gen_needs(size_t desired_change_in_bytes);
73   // Similarly for a growth of the young generation.
74   void adjust_boundary_for_young_gen_needs(size_t eden_size, size_t survivor_size);
75 
76   // Return the total byte size of the reserved space
77   // for the adjoining generations.
78   virtual size_t reserved_byte_size();
79 
80   // Return new AdjoiningGenerations instance based on collector policy (specifically - whether heap is heterogeneous).
< prev index next >