Blame view

3rdparty/boost_1_81_0/libs/hana/benchmark/measure.hpp 884 Bytes
73ef4ff3   Hu Chunming   提交三方库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
  // Copyright Louis Dionne 2013-2022
  // Distributed under the Boost Software License, Version 1.0.
  // (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
  
  #ifndef BOOST_HANA_BENCHMARK_MEASURE_HPP
  #define BOOST_HANA_BENCHMARK_MEASURE_HPP
  
  #include <chrono>
  #include <iostream>
  
  
  namespace boost { namespace hana { namespace benchmark {
      auto measure = [](auto f) {
          constexpr auto repetitions = 500ull;
          auto start = std::chrono::steady_clock::now();
          for (auto i = repetitions; i > 0; --i) {
              f();
          }
          auto stop = std::chrono::steady_clock::now();
  
          auto time = std::chrono::duration_cast<std::chrono::duration<float>>(
              (stop - start) / repetitions
          );
          std::cout << std::fixed;
          std::cout << "[execution time: " << time.count() << "]" << std::endl;
      };
  }}}
  
  #endif