diff options
| author | levlam <levlam@telegram.org> | 2021-08-23 11:17:25 +0300 |
|---|---|---|
| committer | levlam <levlam@telegram.org> | 2021-08-23 11:17:25 +0300 |
| commit | ddb3c56ddb118d4ac71237d516cf6e05c0a73157 (patch) | |
| tree | 909e70e4bca36408f1f10dde6afb7105b113a848 /benchmark | |
| parent | 828e1e22a0531e84abd65a6d0533083ea0a137f6 (diff) | |
Add one more MessageIdDuplicateChecker benchmark.
Diffstat (limited to 'benchmark')
| -rw-r--r-- | benchmark/bench_misc.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/benchmark/bench_misc.cpp b/benchmark/bench_misc.cpp index aeec2232a..f0a4bea06 100644 --- a/benchmark/bench_misc.cpp +++ b/benchmark/bench_misc.cpp @@ -633,9 +633,28 @@ class DuplicateCheckerBenchReverse final : public td::Benchmark { } }; +template <class T> +class DuplicateCheckerBenchEvenOdd final : public td::Benchmark { + td::string get_description() const final { + return PSTRING() << "DuplicateCheckerBenchEvenOdd" << T::get_description(); + } + void run(int n) final { + T checker_; + for (int i = 0; i < n; i++) { + auto pos = i & 255; + checker_.check(i - pos + (pos * 2) % 256 + (pos * 2) / 256).ensure(); + } + } +}; + int main() { SET_VERBOSITY_LEVEL(VERBOSITY_NAME(DEBUG)); + td::bench(DuplicateCheckerBenchEvenOdd<MessageIdDuplicateCheckerNew<1000>>()); + td::bench(DuplicateCheckerBenchEvenOdd<MessageIdDuplicateCheckerNew<300>>()); + td::bench(DuplicateCheckerBenchEvenOdd<MessageIdDuplicateCheckerArray<1000>>()); + td::bench(DuplicateCheckerBenchEvenOdd<MessageIdDuplicateCheckerArray<300>>()); + td::bench(DuplicateCheckerBenchReverse<MessageIdDuplicateCheckerNew<1000>>()); td::bench(DuplicateCheckerBenchReverse<MessageIdDuplicateCheckerNew<300>>()); td::bench(DuplicateCheckerBenchReverse<MessageIdDuplicateCheckerArray<1000>>()); |
