| 69 | |
| 70 | template <typename OpThroughputCounterT> |
| 71 | void printThroughput(std::ostream& os, const OpThroughputCounterT& t) { |
| 72 | os << std::endl |
| 73 | << " calls=" << t.calls_ << " successes=" << t.successes_ |
| 74 | << " errors=" << t.errors_; |
| 75 | printRate(os, "successRate", t.successes_, t.calls_); |
| 76 | if constexpr (std::is_same_v<OpThroughputCounterT, |
| 77 | detail::OpFindThroughputCounters<size_t>>) { |
| 78 | os << std::endl << " hits=" << t.hits_ << " misses=" << t.misses_; |
| 79 | printRate(os, "hitRate", t.hits_, t.hits_ + t.misses_); |
| 80 | } |
| 81 | } |
| 82 | |
| 83 | template <typename OpCounterT> |
| 84 | void printOpCounters(std::ostream& os, const char* name, const OpCounterT& op) { |
no test coverage detected