Googletest测试实战用例

可运行文件内容:

static void benchmark_slamopttest(benchmark::State& state)
{
    SlamOptBoundaries slamtest(15, 4, 4, "/home/usrname/slamtest/CameraRoadFrame", "/home/usrname/slamtest/result.json");
    size_t index = state.range(0);
    for(auto _: state)
    {
        slamtest.SaveSameBoundaries(index);
    }
}
BENCHMARK(benchmark_slamopttest)->Arg(10);

BENCHMARK_MAIN();

测试函数1:

void SlamOptBoundaries::SaveSameBoundaries(size_t const index_b)
{
    VecLocalBoundary vec_same_boundary_l;
    size_t           index_bl = index_b;
    for (; index_bl < vec_boundaries_in_frames_.size(); index_bl += b_)
    {
        // for(int i = 0; i < 10; ++i)
        // {
        //     int j = i;
        // }
        if(vec_boundaries_in_frames_[index_bl].size() == 1)
        {
            continue;
        }
        vec_same_boundary_l.push_back(vec_boundaries_in_frames_[index_bl]);
    }
}

测试函数2:

void SlamOptBoundaries::SaveSameBoundaries(size_t const index_b)
{
    VecLocalBoundary vec_same_boundary_l;
    size_t           index_bl = index_b;
    for (; index_bl < vec_boundaries_in_frames_.size(); index_bl += b_)
    {
        for(int i = 0; i < 10; ++i)
        {
            int j = i;
        }
        if(vec_boundaries_in_frames_[index_bl].size() == 1)
        {
            continue;
        }
        vec_same_boundary_l.push_back(vec_boundaries_in_frames_[index_bl]);
    }
}

测试结果

测试函数1:

2022-01-25T16:13:26+08:00
Running ./run
Run on (16 X 4800 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x8)
  L1 Instruction 32 KiB (x8)
  L2 Unified 256 KiB (x8)
  L3 Unified 16384 KiB (x1)
Load Average: 0.28, 0.47, 0.51
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
***WARNING*** Library was built as DEBUG. Timings may be affected.
-------------------------------------------------------------------
Benchmark                         Time             CPU   Iterations
-------------------------------------------------------------------
benchmark_slamopttest/50        152 ns          152 ns      4207340

152ns内执行了4207340次,平均1ns执行27679次。

测试函数2:

2022-01-25T16:14:00+08:00
Running ./run
Run on (16 X 4800 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x8)
  L1 Instruction 32 KiB (x8)
  L2 Unified 256 KiB (x8)
  L3 Unified 16384 KiB (x1)
Load Average: 0.21, 0.43, 0.50
***WARNING*** CPU scaling is enabled, the benchmark real time measurements may be noisy and will incur extra overhead.
***WARNING*** Library was built as DEBUG. Timings may be affected.
-------------------------------------------------------------------
Benchmark                         Time             CPU   Iterations
-------------------------------------------------------------------
benchmark_slamopttest/50        151 ns          151 ns      4321895

151ns内执行了4321895次,平均1ns执行28621次。

结论

函数1性能更好,虽然结果肉眼可见。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铃灵狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值