Skip to content

Commit

Permalink
perf_tests: Right-align numeric metrics in markdown tables
Browse files Browse the repository at this point in the history
Right-align metrics columns in markdown output for better number comparison.
Previously, metrics were left-aligned in markdown tables but right-aligned
in stdout, making it difficult to visually compare numbers.

The change adds colons to the right of hyphens in the header row
(e.g. `|---:|`) to right-align entire columns. While this affects both
headers and data cells, the improved readability of numeric values
outweighs the minor tradeoff of right-aligned headers.

In short:
- Uses `column::print_text` with ":>" alignment for consistent formatting
- Maintains existing stdout_printer right alignment
- Updates `markdown_printer` alignment to match stdout behavior

Signed-off-by: Kefu Chai <[email protected]>
  • Loading branch information
tchaikov committed Jan 16, 2025
1 parent 57d7d48 commit f2df55b
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions tests/perf/perf_tests.cc
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,21 @@ class json_printer final : public result_printer {

class markdown_printer final : public result_printer {
std::FILE* _output = nullptr;

void print_header_row(const char* head_text, const char* body_text) {
// start delimeter, and the top-left cell
fmt::print(_output, "| {:<{}}", head_text, name_column_length());
// the header cells
for (auto& c : text_columns) {
// middle delimeter
fmt::print(_output, " | ");
// right align the text in result cells
c.print_header(_output, body_text);
}
// end delimeter
fmt::print(_output, " |\n");
}

public:
explicit markdown_printer(const std::string& filename) {
if (filename == "-") {
Expand All @@ -375,9 +390,10 @@ class markdown_printer final : public result_printer {
}

void print_configuration(const config&) override {
// print the header row, then the divider row of all -
print_text_header(_output, text_columns, name_column_length(), "| ", " | ", " |", "test");
print_text_header(_output, text_columns, name_column_length(), "| ", " | ", " |", "test", "-");
// print the header row
print_header_row("test", nullptr);
// then the divider row of all -
print_header_row("-", "-:");
}

void print_result(const result& r) override {
Expand Down

0 comments on commit f2df55b

Please sign in to comment.