util_time.cpp raw

   1  // Copyright (c) 2019-2022 The Limenka developers
   2  // Distributed under the MIT software license, see the accompanying
   3  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
   4  
   5  #include <bench/bench.h>
   6  
   7  #include <util/time.h>
   8  
   9  static void BenchTimeDeprecated(benchmark::Bench& bench)
  10  {
  11      bench.run([&] {
  12          (void)GetTime();
  13      });
  14  }
  15  
  16  static void BenchTimeMock(benchmark::Bench& bench)
  17  {
  18      SetMockTime(111);
  19      bench.run([&] {
  20          (void)GetTime<std::chrono::seconds>();
  21      });
  22      SetMockTime(0);
  23  }
  24  
  25  static void BenchTimeMillis(benchmark::Bench& bench)
  26  {
  27      bench.run([&] {
  28          (void)GetTime<std::chrono::milliseconds>();
  29      });
  30  }
  31  
  32  static void BenchTimeMillisSys(benchmark::Bench& bench)
  33  {
  34      bench.run([&] {
  35          (void)TicksSinceEpoch<std::chrono::milliseconds>(SystemClock::now());
  36      });
  37  }
  38  
  39  BENCHMARK(BenchTimeDeprecated, benchmark::PriorityLevel::HIGH);
  40  BENCHMARK(BenchTimeMillis, benchmark::PriorityLevel::HIGH);
  41  BENCHMARK(BenchTimeMillisSys, benchmark::PriorityLevel::HIGH);
  42  BENCHMARK(BenchTimeMock, benchmark::PriorityLevel::HIGH);
  43