llvm-project

Форк
0
34 строки · 1.1 Кб
1
//===----------------------------------------------------------------------===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8

9
#include <algorithm>
10

11
#include "common.h"
12

13
namespace {
14
template <class ValueType>
15
struct SortHeap {
16
  size_t Quantity;
17

18
  void run(benchmark::State& state) const {
19
    runOpOnCopies<ValueType>(state, Quantity, Order::Heap, BatchSize::CountElements, [](auto& Copy) {
20
      std::sort_heap(Copy.begin(), Copy.end());
21
    });
22
  }
23

24
  std::string name() const { return "BM_SortHeap" + ValueType::name() + "_" + std::to_string(Quantity); };
25
};
26
} // namespace
27

28
int main(int argc, char** argv) {
29
  benchmark::Initialize(&argc, argv);
30
  if (benchmark::ReportUnrecognizedArguments(argc, argv))
31
    return 1;
32
  makeCartesianProductBenchmark<SortHeap, AllValueTypes>(Quantities);
33
  benchmark::RunSpecifiedBenchmarks();
34
}
35

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.