Top


定義場所(file name)

hotspot/src/share/vm/services/memoryService.cpp

説明(description)

// GC manager type depends on the type of Generation. Depending on the space
// availablity and vm options the gc uses major gc manager or minor gc
// manager or both. The type of gc manager depends on the generation kind.
// For DefNew, ParNew and ASParNew generation doing scavenge gc uses minor
// gc manager (so _fullGC is set to false ) and for other generation kinds
// doing mark-sweep-compact uses major gc manager (so _fullGC is set
// to true).

名前(function name)

TraceMemoryManagerStats::TraceMemoryManagerStats(Generation::Name kind, GCCause::Cause cause) {

本体部(body)

  {- -------------------------------------------
  (1) TraceMemoryManagerStats::initialize() を呼び出すだけ.
      (呼び出す際の第一引数(以下の _fullGC)は, 引数の kind の値に応じて決まる)
      ---------------------------------------- -}

      switch (kind) {
        case Generation::DefNew:
    #ifndef SERIALGC
        case Generation::ParNew:
        case Generation::ASParNew:
    #endif // SERIALGC
          _fullGC=false;
          break;
        case Generation::MarkSweepCompact:
    #ifndef SERIALGC
        case Generation::ConcurrentMarkSweep:
        case Generation::ASConcurrentMarkSweep:
    #endif // SERIALGC
          _fullGC=true;
          break;
        default:
          assert(false, "Unrecognized gc generation kind.");
      }
      // this has to be called in a stop the world pause and represent
      // an entire gc pause, start to finish:
      initialize(_fullGC, cause,true, true, true, true, true, true, true);
    }

This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.