今天打算写一个多线程的代码,嫌弃自己以前写的单线程的代码,想看看加速比。使用boost时间库 boost::progress_timer t; //计算程序运行时间。本想着凑乎着用吧,结果编译2以后告诉我最好使用boost/timer/timer.hpp,老版本的不支持了什么的。
无奈学习了一下boost/timer/timer.hpp。
使用方法:
注意事项有两个,第一个是添加头文件,第二个是需要编译。
#include <boost/timer/timer.hpp>
还要在make文件中加入
-lboost_system -lboost_timer
才可以的。
上代码:
int main()
{
boost::timer::auto_cpu_timer t; //计算程序运行时间
t.start(); //开始计时
for(int i = 0; i< 1000;++i)
{
for(int j = 0; j < 100000;++j)
{}
}
std::cout << t.format() << std::endl;
return 0;
}
实际上不需要
t.start(); //开始计时
的因为调用构造函数就开始计时了
也不需要要
std::cout << t.format() << std::endl;
析构函数调用就自己输出了;
结果:
这是没有上面的语句的。
int main()
{
boost::timer::auto_cpu_timer t; //计算程序运行时间
for(int i = 0; i< 1000;++i)
{
for(int j = 0; j < 100000;++j)
{}
}
return 0;
}
加上就输出两遍:
int main()
{
boost::timer::auto_cpu_timer t; //计算程序运行时间
t.start(); //开始计时
for(int i = 0; i< 1000;++i)
{
for(int j = 0; j < 100000;++j)
{}
}
std::cout << t.format() << std::endl;
return 0;
}
结果: