Skip to content

Commit

Permalink
Include extremum mark in csv too
Browse files Browse the repository at this point in the history
  • Loading branch information
schmelter-sap committed Jul 14, 2023
1 parent c1fa10b commit c0aab63
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 16 deletions.
24 changes: 9 additions & 15 deletions src/hotspot/share/vitals/vitals.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,7 @@ Column::Column(const char* category, const char* header, const char* name, const
{}

void Column::print_value(outputStream* st, value_t value, value_t last_value,
int last_value_age, int min_width, const print_info_t* pi) const {
int last_value_age, int min_width, const print_info_t* pi, char const* marker) const {

// We print all values right aligned.
int needed = calc_print_size(value, last_value, last_value_age, pi);
Expand All @@ -515,6 +515,7 @@ void Column::print_value(outputStream* st, value_t value, value_t last_value,
st->put('"');
}
do_print(st, value, last_value, last_value_age, pi);
st->print(marker);
if (pi->csv) {
st->put('"');
}
Expand Down Expand Up @@ -583,7 +584,7 @@ int DeltaMemorySizeColumn::do_print0(outputStream* st, value_t value,

// Print one sample.
static void print_one_sample(outputStream* st, const Sample* sample,
const Sample* last_sample, const ColumnWidths* widths, const print_info_t* pi, int marked_index = -1, char mark = '*') {
const Sample* last_sample, const ColumnWidths* widths, const print_info_t* pi, int marked_index = -1, char const* mark = NULL) {

// Print timestamp and divider
if (pi->csv) {
Expand Down Expand Up @@ -611,10 +612,8 @@ static void print_one_sample(outputStream* st, const Sample* sample,
age = sample->timestamp() - last_sample->timestamp();
}
const int min_width = widths->at(idx) - (marked_index >= 0 ? 1 : 0);
c->print_value(st, v, v2, age, min_width, pi);
if (marked_index >= 0) {
st->put(marked_index == idx ? mark : ' ');
}
c->print_value(st, v, v2, age, min_width, pi,
marked_index == idx ? mark : (marked_index >= 0 && !pi->csv ? " " : ""));
st->put(pi->csv ? ',' : ' ');
c = c->next();
}
Expand Down Expand Up @@ -951,11 +950,7 @@ class SampleTables: public CHeapObj<mtInternal> {
}

if (StoreVitalsExtremas && !_extremum_samples.is_empty() && !_last_extremum_samples.is_empty()) {
if (pi->csv) {
st->print_cr("Samples at extremes");
} else {
st->print_cr("Samples at extremes (+ marks a maximum, - marks a minimum)");
}
st->print_cr("Samples at extremes (+ marks a maximum, - marks a minimum)");

ColumnWidths widths;
MeasureColumnWidthsClosure mcwclos(pi, &widths);
Expand All @@ -964,8 +959,7 @@ class SampleTables: public CHeapObj<mtInternal> {
if (column->extremum() != NONE) {
Sample* extremum_sample = _extremum_samples.sample_at(column->index());
Sample* last_extremum_sample = _last_extremum_samples.sample_at(column->index());
// We don't include the min/max marker in csv output, so we don't need extra width.
widths.update_from_sample(extremum_sample, last_extremum_sample, pi, pi->csv ? 0 : 1);
widths.update_from_sample(extremum_sample, last_extremum_sample, pi, 1);
}
}

Expand All @@ -975,8 +969,8 @@ class SampleTables: public CHeapObj<mtInternal> {
if (column->extremum() != NONE) {
Sample* extremum_sample = _extremum_samples.sample_at(column->index());
Sample* last_extremum_sample = _last_extremum_samples.sample_at(column->index());
print_one_sample(st, extremum_sample, last_extremum_sample, &widths, pi, pi->csv ? -1 : column->index(),
column->extremum() == MIN ? '-' : '+');
print_one_sample(st, extremum_sample, last_extremum_sample, &widths, pi, column->index(),
column->extremum() == MIN ? "-" : "+");
}
}

Expand Down
3 changes: 2 additions & 1 deletion src/hotspot/share/vitals/vitals_internals.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,8 @@ namespace sapmachine_vitals {
Extremum extremum() const { return _extremum; }

void print_value(outputStream* os, value_t value, value_t last_value,
int last_value_age, int min_width, const print_info_t* pi) const;
int last_value_age, int min_width, const print_info_t* pi,
char const* marker) const;

// Returns the number of characters this value needs to be printed.
int calc_print_size(value_t value, value_t last_value,
Expand Down

0 comments on commit c0aab63

Please sign in to comment.