所以我讀這boost docs但我仍然不知道怎樣做這樣簡單的事升壓計時器:當我需要時如何獲得時間?
int main() {
//stuff
startTimer();
// do stuff
int i =getTimerValue();
//stuff
}
所以要得到我所做的東西執行時間。如何做這樣的事情?
所以我讀這boost docs但我仍然不知道怎樣做這樣簡單的事升壓計時器:當我需要時如何獲得時間?
int main() {
//stuff
startTimer();
// do stuff
int i =getTimerValue();
//stuff
}
所以要得到我所做的東西執行時間。如何做這樣的事情?
使用boost::timer
#include <boost/timer.hpp>
int main() {
boost::timer t; // start timing
...
double elapsed_time = t.elapsed();
...
}
注意一個boost::progress_timer
的destuctor將顯示時間。因此,如果您的目標只是顯示函數中間過去的時間,請使用範圍。
int main() {
{
boost::progress_timer t; // start timing
...
} // elapsed time displayed here when t is destructed
...
}
與
#include <boost/progress.hpp>
void function()
{
progress_timer t; // start timing
// do stuff
return 0;
}
更換這一點,你會得到你想要什麼,而不是使用printf
雖然。
定時器開始施工並顯示銷燬(即在fn出口處)。這是一種典型的在C++中執行作用域任務(時序,鎖定等)的方式。
這就是我的觀點 - 當函數結束時不返回時間值,直到部分函數停止工作時才顯示時間值。 – Rella 2010-11-05 12:24:57
@Kabumbus:在這種情況下,使用'
根據上述特徵,還有以下想法,即經歷時間由析構函數顯示。
#include "boost/timer/timer.hpp"
int main()
{
// ...
boost::timer:auto_cpu_timer *boost_timer = new boost::timer:auto_cpu_timer();
// we want to measure the time of execution of this part of code
// ...
delete boost_timer; // show the elapsed time
// then we can repeat
boost_timer = new boost::timer:auto_cpu_timer();
// ...
delete boost_timer;
// ...
}
我不知道我理解。您想要檢索自上次重新啓動計時器以來的時間? – 2010-11-05 12:03:57