| 28 | static constexpr uint32_t kBufferSize = 500; |
| 29 | |
| 30 | static void BenchmarkTDigest(benchmark::State& state) { |
| 31 | const size_t items = state.range(0); |
| 32 | std::vector<double> values; |
| 33 | random_real(items, 0x11223344, -12345678.0, 12345678.0, &values); |
| 34 | |
| 35 | for (auto _ : state) { |
| 36 | arrow::internal::TDigest td(kDelta, kBufferSize); |
| 37 | for (double value : values) { |
| 38 | td.Add(value); |
| 39 | } |
| 40 | auto quantile = td.Quantile(0); |
| 41 | benchmark::DoNotOptimize(quantile); |
| 42 | } |
| 43 | state.SetItemsProcessed(state.iterations() * items); |
| 44 | } |
| 45 | |
| 46 | BENCHMARK(BenchmarkTDigest)->Arg(1 << 12)->Arg(1 << 16)->Arg(1 << 20); |
| 47 |
nothing calls this directly
no test coverage detected