抱怨
由於我在兩臺機器上編輯過這個文檔。導致我的CSDN出現bug。 在編輯新的文章的時候直接給覆蓋了上一篇。一篇長博客就此永久抹去。非常心痛!!!
google-benchmark 下載與README 地址
https://github.com/google/benchmark
源碼的編譯和執行
源碼
test.cpp 這個一個測試memcpy對不同大小的內存的執行效率的函數。
#include <benchmark/benchmark.h>
#include <string.h>
static void BM_memcpy(benchmark::State& state) {
char* src = new char[state.range_x()]; char* dst = new char[state.range_x()];
memset(src, 'x', state.range_x());
while (state.KeepRunning())
memcpy(dst, src, state.range_x());
state.SetBytesProcessed(int64_t(state.iterations()) *
int64_t(state.range_x()));
delete[] src; delete[] dst;
}
BENCHMARK(BM_memcpy)->Arg(8)->Arg(64)->Arg(512)->Arg(1<<10)->Arg(8<<10);
BENCHMARK_MAIN();
編譯
g++ test.cpp -std=c++11 -lpthread -lbenchmark
運行 a.out
含義 :
名字 + 運行一次的User時間 + 一次的CPU時間 + 1s 可以迭代多少次