今天打算寫一個多線程的代碼,嫌棄自己以前寫的單線程的代碼,想看看加速比。使用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;
}
結果: