Почему в бенчмарке Google csv_reporter распечатываются неиспользуемые заголовки? - PullRequest
1 голос
/ 29 октября 2019

Мы используем Google (micro) Benchmark (https://github.com/google/benchmark), чтобы сделать бенчмаркинг. Когда мы отображаем результаты, бенчмарк отображает все заголовки (даже неиспользуемые). Результаты бенчмарка отображаются с помощью csv_reporter (https://github.com/google/benchmark/blob/master/src/csv_reporter.cc). Я вижу в коде (в строке 71), что он перебирает все заголовки (элементы, объявление в строке 34) и просто распечатывает их.

34 std::vector<std::string> elements = {
35 "name",           "iterations",       "real_time",        "cpu_time",
36 "time_unit",      "bytes_per_second", "items_per_second", "label",
37 "error_occurred", "error_message"};
38 }

...

71 for (auto B = elements.begin(); B != elements.end();) {
72     Out << *B++;
73     if (B != elements.end()) Out << ",";
74 }

Я не могу найти способ отключитьнеиспользуемые заголовки, и, таким образом, эталонный тест выглядит не очень хорошо. Вот как выглядит мой результат теста:

name            iterations  real_time  cpu_time  time_unit  bytes_per_second items_per_second  label  error_occurred  error_message  "CustomCounter1"  "CustomCounter2"
"randomname"    1           1059.26    1062.5    ms

Итак, как вы можете видеть, есть много неиспользуемых столбцов без причины. Тем не менее, я хотел бы сохранить пользовательские счетчики в конце, так как они содержат данные, которые я отображаю, я просто не могу поместить их здесь в разметке.

А именно, я хотел бы удалить эти заголовки: bytes_per_second, items_per_second, метка, error_occurred, error_message .

...