Google's benchmark lib 너무 편해서 큰일 났어요.

1846 단어 benchmarkC++

함수나 기준을 지원하는 프로그램 라이브러리입니다.
C+++11 기능 (정정은 정확히 -std=c++ 0x) 이기 때문에 새 C++ 컴파일러가 아니면 움직이지 않습니다.
사용 방법은 매우 간단하다. 단원 테스트처럼 기준이 측정하고자 하는 함수를 Benchmark: State를 매개 변수로 적당히 취하고 매크로로 호출하는 지시를 한다.
#include "benchmark/benchmark.h"

static void BM_LongTest(benchmark::State& state) {
  double tracker = 0.0;
  while (state.KeepRunning())
  for (int i = 0; i < state.range_x(); ++i)
    tracker += i;
  CHECK(tracker != 0.0);
}
BENCHMARK(BM_LongTest)->Range(1<<16,1<<28);

int
main(
  int argc,
  const char** argv)
{
  benchmark::Initialize(&argc, argv);

  benchmark::RunSpecifiedBenchmarks();
  return EXIT_SUCCESS;

}
이렇게 Range에 따라 2^16~2^28 사이에서 적당히 값을 흔드는 도형 MBLongTest라고 불러주세요.
출력은 아래와 같으니 많이 보고해 주십시오.
Reading /proc/self/cputime_ns failed. Using getrusage().
Benchmarking on 1 X 2297.19 MHz CPU
2014/02/05-03:06:36
DEBUG: Benchmark          Time(ns)    CPU(ns) Iterations
--------------------------------------------------------
DEBUG: BM_LongTest/64k      219496     221310       2268                                  
DEBUG: BM_LongTest/256k     871541     880878        574                                  
DEBUG: BM_LongTest/2M      7076118    7158361         72                                  
DEBUG: BM_LongTest/16M    62749889   63467500          8                                  
DEBUG: BM_LongTest/128M  894819972  902404000          1                                  
DEBUG: BM_LongTest/256M 1793205019 1809572000          1  
특정 값 호출 함수(Arg), 스레드 수 호출 함수(Threads)를 지정하면 대체로 가능합니다.압력 테스트와 랜덤 테스트에 사용할 수 있습니다!

이름이 나쁘다


하지만 이름은 아쉬워요... 이러면 혼란스럽고 검색도 어려워요.

좋은 웹페이지 즐겨찾기