Top


定義場所(file name)

hotspot/src/share/vm/memory/collectorPolicy.cpp

名前(function name)

void CollectorPolicy::initialize_size_info() {

本体部(body)

  {- -------------------------------------------
  (1) フィールドの初期化
      ---------------------------------------- -}

      // User inputs from -mx and ms are aligned
      set_initial_heap_byte_size(InitialHeapSize);
      if (initial_heap_byte_size() == 0) {
        set_initial_heap_byte_size(NewSize + OldSize);
      }
      set_initial_heap_byte_size(align_size_up(_initial_heap_byte_size,
                                               min_alignment()));

      set_min_heap_byte_size(Arguments::min_heap_size());
      if (min_heap_byte_size() == 0) {
        set_min_heap_byte_size(NewSize + OldSize);
      }
      set_min_heap_byte_size(align_size_up(_min_heap_byte_size,
                                           min_alignment()));

      set_max_heap_byte_size(align_size_up(MaxHeapSize, max_alignment()));

  {- -------------------------------------------
  (1) 初期化したフィールドの値がおかしい場合は
      ここで異常終了させる.
      ---------------------------------------- -}

      // Check heap parameter properties
      if (initial_heap_byte_size() < M) {
        vm_exit_during_initialization("Too small initial heap");
      }
      // Check heap parameter properties
      if (min_heap_byte_size() < M) {
        vm_exit_during_initialization("Too small minimum heap");
      }
      if (initial_heap_byte_size() <= NewSize) {
         // make sure there is at least some room in old space
        vm_exit_during_initialization("Too small initial heap for new size specified");
      }
      if (max_heap_byte_size() < min_heap_byte_size()) {
        vm_exit_during_initialization("Incompatible minimum and maximum heap sizes specified");
      }
      if (initial_heap_byte_size() < min_heap_byte_size()) {
        vm_exit_during_initialization("Incompatible minimum and initial heap sizes specified");
      }
      if (max_heap_byte_size() < initial_heap_byte_size()) {
        vm_exit_during_initialization("Incompatible initial and maximum heap sizes specified");
      }

  {- -------------------------------------------
  (1) (トレース出力)
      ---------------------------------------- -}

      if (PrintGCDetails && Verbose) {
        gclog_or_tty->print_cr("Minimum heap " SIZE_FORMAT "  Initial heap "
          SIZE_FORMAT "  Maximum heap " SIZE_FORMAT,
          min_heap_byte_size(), initial_heap_byte_size(), max_heap_byte_size());
      }
    }

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