google-benchmark 渐进学习

抱怨

由于我在两台机器上编辑过这个文档。导致我的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 可以迭代多少次

源码解析

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值