本文主要是介绍C++多线程教程(二)衡量线程执行时间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
简介
在利用多线程实现加速之前,我先来讲一下衡量线程执行时间的常用方法。实现的基本思路就是用衡量函数对执行代表包括起来。
基本语法
#include<iostream>
#include<thread>
using namespace std;using namespace std::chrono; //增加引用空间
template<class T>
void measure(T&& func) {auto beg_t = system_clock::now(); //开始时间func(); //执行函数auto end_t = system_clock::now(); //结束时间duration<double> diff = end_t - beg_t;printf("performTest total time: ");cout << diff.count()<<endl;
}
void func() {cout << "This is func thread " << endl;int s = 0;for (int i = 0; i < 5; i++)s += i;
}int main() {measure(func);
}
执行结果
This is func thread
performTest total time: 0.0004911
进阶版的案例:利用lambda把执行体函数写的紧凑些(选看)
int main() {int limit = 50;measure([limit]() { //方括号捕捉外部变量limitcout << "This is func thread " << endl;int s = 0;for (int i = 0; i < limit; i++)s += i;});
}
void measure(T&& func){auto beg_t = system_clock::now();func();auto end_t = system_clock::now();duration<double> diff = end_t - beg_t;printf("PerformTest total time: ");cout << diff.count()<<endl;
}
总结
本章内容介绍了如何用measure函数测量执行时间,下一章节将具体介绍加速过程的实现。
参考资料
链接: cpp小知识——lambda表达式.
链接: 通用测量函数运行时间的技巧.
这篇关于C++多线程教程(二)衡量线程执行时间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!