src/share/vm/services/nmtDCmd.cpp

Print this page




  50             "memory used by runtime.",
  51             "BOOLEAN", false, "false"),
  52 #ifndef PRODUCT
  53   _debug("debug", "print tracker statistics. Debug only, not thread safe", \
  54             "BOOLEAN", false, "false"),
  55 #endif
  56   _scale("scale", "Memory usage in which scale, KB, MB or GB",
  57        "STRING", false, "KB") {
  58   _dcmdparser.add_dcmd_option(&_summary);
  59   _dcmdparser.add_dcmd_option(&_detail);
  60   _dcmdparser.add_dcmd_option(&_baseline);
  61   _dcmdparser.add_dcmd_option(&_summary_diff);
  62   _dcmdparser.add_dcmd_option(&_detail_diff);
  63   _dcmdparser.add_dcmd_option(&_shutdown);
  64 #ifndef PRODUCT
  65   _dcmdparser.add_dcmd_option(&_debug);
  66 #endif
  67   _dcmdparser.add_dcmd_option(&_scale);
  68 }
  69 
  70 void NMTDCmd::execute(TRAPS) {
  71   const char* scale_value = _scale.value();
  72   size_t scale_unit;
  73   if (strcmp(scale_value, "KB") == 0 || strcmp(scale_value, "kb") == 0) {
  74     scale_unit = K;
  75   } else if (strcmp(scale_value, "MB") == 0 ||
  76              strcmp(scale_value, "mb") == 0) {
  77     scale_unit = M;
  78   } else if (strcmp(scale_value, "GB") == 0 ||
  79              strcmp(scale_value, "gb") == 0) {
  80     scale_unit = G;
  81   } else {
  82     output()->print_cr("Incorrect scale value: %s", scale_value);
  83     return;
  84   }
  85 
  86   int nopt = 0;
  87   if(_summary.is_set()) { ++nopt; }
  88   if(_detail.is_set()) { ++nopt; }
  89   if(_baseline.is_set()) { ++nopt; }
  90   if(_summary_diff.is_set()) { ++nopt; }




  50             "memory used by runtime.",
  51             "BOOLEAN", false, "false"),
  52 #ifndef PRODUCT
  53   _debug("debug", "print tracker statistics. Debug only, not thread safe", \
  54             "BOOLEAN", false, "false"),
  55 #endif
  56   _scale("scale", "Memory usage in which scale, KB, MB or GB",
  57        "STRING", false, "KB") {
  58   _dcmdparser.add_dcmd_option(&_summary);
  59   _dcmdparser.add_dcmd_option(&_detail);
  60   _dcmdparser.add_dcmd_option(&_baseline);
  61   _dcmdparser.add_dcmd_option(&_summary_diff);
  62   _dcmdparser.add_dcmd_option(&_detail_diff);
  63   _dcmdparser.add_dcmd_option(&_shutdown);
  64 #ifndef PRODUCT
  65   _dcmdparser.add_dcmd_option(&_debug);
  66 #endif
  67   _dcmdparser.add_dcmd_option(&_scale);
  68 }
  69 
  70 void NMTDCmd::execute(DCmdSource source, TRAPS) {
  71   const char* scale_value = _scale.value();
  72   size_t scale_unit;
  73   if (strcmp(scale_value, "KB") == 0 || strcmp(scale_value, "kb") == 0) {
  74     scale_unit = K;
  75   } else if (strcmp(scale_value, "MB") == 0 ||
  76              strcmp(scale_value, "mb") == 0) {
  77     scale_unit = M;
  78   } else if (strcmp(scale_value, "GB") == 0 ||
  79              strcmp(scale_value, "gb") == 0) {
  80     scale_unit = G;
  81   } else {
  82     output()->print_cr("Incorrect scale value: %s", scale_value);
  83     return;
  84   }
  85 
  86   int nopt = 0;
  87   if(_summary.is_set()) { ++nopt; }
  88   if(_detail.is_set()) { ++nopt; }
  89   if(_baseline.is_set()) { ++nopt; }
  90   if(_summary_diff.is_set()) { ++nopt; }