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; }
|