Google's benchmark lib 너무 편해서 큰일 났어요.
함수나 기준을 지원하는 프로그램 라이브러리입니다.
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)를 지정하면 대체로 가능합니다.압력 테스트와 랜덤 테스트에 사용할 수 있습니다!이름이 나쁘다
하지만 이름은 아쉬워요... 이러면 혼란스럽고 검색도 어려워요.
Reference
이 문제에 관하여(Google's benchmark lib 너무 편해서 큰일 났어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/syoyo/items/011621f830bfc076ac49텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)