一、封装计时器类
CTimerNs.h
#ifndef CTIMERNS_H
#define CTIMERNS_H
#include <time.h>
/**
* @brief The CTimerNs class
* linux下时间统计类(ns级)
*/
class CTimerNs
{
public:
inline CTimerNs()
{
clock_gettime(CLOCK_REALTIME, &startTime);
}
inline void reset()
{
clock_gettime(CLOCK_REALTIME, &startTime);
}
inline long long end() // 返回消耗的ns
{
clock_gettime(CLOCK_REALTIME, &endTime);
long long elapsedTime = (endTime.tv_sec - startTime.tv_sec) * 1000 +
(endTime.tv_nsec - startTime.tv_nsec);
return elapsedTime;
}
private:
struct timespec startTime;
struct timespec endTime;
};
#endif // CTIMERNS_H
二、测试代码
void testLogic(int repeat)
{
int sum = 0;
for (int i = 0; i < repeat; i++)
{
sum += i;
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
CTimerNs timerNs;
timerNs.reset(); // 开始计时
testLogic(1000); // 运行逻辑
long long = timerNs.end(); // 结束计时
qDebug() << "elapsed time:" << elapsed << "ns";
return a.exec();
}
参考链接:
若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!
同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。
本文涉及工程代码,公众号回复:13LinuxCountTime,即可下载。