< prev index next >

src/hotspot/share/gc/shared/generationSpec.cpp

Print this page




  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "gc/serial/defNewGeneration.hpp"
  27 #include "gc/serial/tenuredGeneration.hpp"
  28 #include "gc/shared/cardTableRS.hpp"
  29 #include "gc/shared/generationSpec.hpp"
  30 #include "memory/binaryTreeDictionary.hpp"
  31 #include "memory/filemap.hpp"
  32 #include "runtime/java.hpp"
  33 #include "utilities/macros.hpp"
  34 #if INCLUDE_ALL_GCS
  35 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
  36 #include "gc/cms/parNewGeneration.hpp"
  37 #endif // INCLUDE_ALL_GCS
  38 
  39 Generation* GenerationSpec::init(ReservedSpace rs, CardTableRS* remset) {
  40   switch (name()) {
  41     case Generation::DefNew:
  42       return new DefNewGeneration(rs, init_size());
  43 
  44     case Generation::MarkSweepCompact:
  45       return new TenuredGeneration(rs, init_size(), remset);
  46 
  47 #if INCLUDE_ALL_GCS
  48     case Generation::ParNew:
  49       return new ParNewGeneration(rs, init_size());
  50 
  51     case Generation::ConcurrentMarkSweep: {
  52       assert(UseConcMarkSweepGC, "UseConcMarkSweepGC should be set");
  53       if (remset == NULL) {
  54         vm_exit_during_initialization("Rem set incompatibility.");
  55       }
  56       // Otherwise
  57       // The constructor creates the CMSCollector if needed,
  58       // else registers with an existing CMSCollector
  59 
  60       ConcurrentMarkSweepGeneration* g = NULL;
  61       g = new ConcurrentMarkSweepGeneration(rs, init_size(), remset);
  62 
  63       g->initialize_performance_counters();
  64 
  65       return g;
  66     }
  67 #endif // INCLUDE_ALL_GCS
  68 
  69     default:
  70       guarantee(false, "unrecognized GenerationName");
  71       return NULL;
  72   }
  73 }


  22  *
  23  */
  24 
  25 #include "precompiled.hpp"
  26 #include "gc/serial/defNewGeneration.hpp"
  27 #include "gc/serial/tenuredGeneration.hpp"
  28 #include "gc/shared/cardTableRS.hpp"
  29 #include "gc/shared/generationSpec.hpp"
  30 #include "memory/binaryTreeDictionary.hpp"
  31 #include "memory/filemap.hpp"
  32 #include "runtime/java.hpp"
  33 #include "utilities/macros.hpp"
  34 #if INCLUDE_ALL_GCS
  35 #include "gc/cms/concurrentMarkSweepGeneration.hpp"
  36 #include "gc/cms/parNewGeneration.hpp"
  37 #endif // INCLUDE_ALL_GCS
  38 
  39 Generation* GenerationSpec::init(ReservedSpace rs, CardTableRS* remset) {
  40   switch (name()) {
  41     case Generation::DefNew:
  42       return new DefNewGeneration(rs, _init_size, _min_size, _max_size);
  43 
  44     case Generation::MarkSweepCompact:
  45       return new TenuredGeneration(rs, _init_size, _min_size, _max_size, remset);
  46 
  47 #if INCLUDE_ALL_GCS
  48     case Generation::ParNew:
  49       return new ParNewGeneration(rs, _init_size, _min_size, _max_size);
  50 
  51     case Generation::ConcurrentMarkSweep: {
  52       assert(UseConcMarkSweepGC, "UseConcMarkSweepGC should be set");
  53       if (remset == NULL) {
  54         vm_exit_during_initialization("Rem set incompatibility.");
  55       }
  56       // Otherwise
  57       // The constructor creates the CMSCollector if needed,
  58       // else registers with an existing CMSCollector
  59 
  60       return new ConcurrentMarkSweepGeneration(rs, _init_size, _min_size, _max_size, remset);





  61     }
  62 #endif // INCLUDE_ALL_GCS
  63 
  64     default:
  65       guarantee(false, "unrecognized GenerationName");
  66       return NULL;
  67   }
  68 }
< prev index next >