llvm-project

Форк
0
36 строк · 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, class Order>
15
struct Sort {
16
  size_t Quantity;
17

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

24
  bool skip() const { return Order() == ::Order::Heap; }
25

26
  std::string name() const { return "BM_Sort" + ValueType::name() + Order::name() + "_" + std::to_string(Quantity); };
27
};
28
} // namespace
29

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

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

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

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

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