函数性能测试方法

函数性能测试

实际工作中,对于某个函数的性能到底如何,使用vector、map、pair还是tuple更快呢,往往并没有细致的研究,一般能用即可。但如果是系统核心代码(高频调度,计算量大等),对于容器的选择、接口的实现就很关键,对此我们需要性能测试代码,如下就是一个简答的接口测试代码

代码实现

#include <chrono>
#include <iostream>
#include <thread>

using namespace std::chrono;
using namespace std::chrono_literals;

int main()
{
	auto t0 = high_resolution_clock::now();
	std::this_thread::sleep_for(10ms+300us);	//模拟需要测试性能的代码
	auto t1 = high_resolution_clock::now();
	std::cout<< duration_cast<milliseconds>(t1-t0).count() << "msec\n";
	std::cout<< duration_cast<microseconds>(t1-t0).count() << "usec\n";
	return 1;
}

执行情况

kongcb@tcu-pc:~/testcode$ g++ testspeed.cpp -o testspeed
kongcb@tcu-pc:~/testcode$ ./testspeed                   
10msec
10374usec //-----多次执行,后面的微妙每次都不太一样

实现分析

#include <chrono> 实现微妙级定时功能
duration_cast<milliseconds>(t1-t0),milliseconds为毫秒
duration_cast<microseconds>(t1-t0),microseconds微妙,但实际测试结果不会是10300,因为实际PC的进程调度没有达到微妙级别
当然还有:hours, minutes, seconds, milliseconds, microseconds, nanoseconds

实用说明

后续我们在开发过程中,不确定效率情况下,就可以使用如上的代码测试具体的接口效率到底如何,只有实际的测试数据才能正确反映函数效率。

没有进行时间测量,就不要对代码做有关“效率”的推断。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

技术的微光

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

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

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

打赏作者

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

抵扣说明:

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

余额充值