回答
閱讀關於Boost.Timers。代碼示例測量時間爲:
#include <boost/timer/timer.hpp>
boost::timer t0;
// do smth
std::cout<<"elapsed: "<< t0.elapsed() << " s\n";
一個簡單的方法來衡量你的程序的某些部分(或全部)所花費的時間是走的當前時間的快照開始,然後從減去它當前時間結束。在Windows上,您可以使用GetTickCount
函數。我在一個小幫手結構通常把這個包:
struct Duration {
Duration(const char *name)
: m_start(::GetTickCount()),
m_name(name)
{ }
~Duration() {
std::cout << m_name << " executed in " << ::GetTickCount() - start << "ms" << std::endl;
}
const DWORD m_start;
const std::string m_name;
};
您可以使用它像這樣:
int main()
{
Duration d("Program");
// Heavy work being done here
}
小的定時信息打印到stdout
爲Duration
對象被銷燬。
對於一個學術代碼也許可以,但在析構函數中添加輸出語句是非常糟糕的做法,更不用說應用程序/計算邏輯了。 – Neowizard 2012-02-24 07:32:27
@Newizard:絕對同意。但是,如果您只是想知道代碼的某些部分需要執行多長時間(如果引入自定義範圍來限制對象的生命週期,則可以使用此'Duration'類很好地),您不希望有一個很好的解耦,模塊化,基於依賴注入的概要分析框架。你只是想在你調試的時候做一些小工作 - 不管怎樣,它都不會在最後提交。 – 2012-02-24 08:18:23
我同意。這是一個很簡單的方法來做一些與運行時相關的測試/調試。只是想指出這不是一個好的製作理念 – Neowizard 2012-02-28 12:15:38
在unix上,你只需要在可執行文件的前面添加「time」前綴,如果偶然有安裝Cygwin,那麼這就是我的建議。否則,請檢查Performance Counters,這是MS平臺上過程性能數據的來源。在應用程序退出之前,應該可以用一個額外的方法調用來解決這個問題。
- 1. 測量在應用程序/線程中花費的時間
- 2. 測量過程所花費的絕對時間
- 3. 總共花費的時間和所有線程所花費的平均時間
- 4. 測量花費執行代碼的時間
- 5. 測量「在GC中花費的時間百分比」
- 6. 測量API調用所花費的時間
- 7. 花費的實際時間
- 8. 查找過程騾流量所花費的時間
- 9. 查找在內核例程中花費的CPU時間量
- 10. Selenium webdriver find_element_by_xpath花費時間
- 11. 在json中花費時間
- 12. :app:transformClassesAndResourcesWithProguardForRelease花費太長時間
- 13. MDX查詢花費時間
- 14. MagicalRecord節省花費時間
- 15. 用戶花費多少時間在我的程序上?
- 16. SurfaceHolder.lockCanvas()爲我的遊戲應用程序花費太長時間
- 17. ASP.NET Web應用程序需要花費大量的時間來調試
- 18. 命令'sbt程序集'花費很長時間來構建Spark
- 19. 花費太多時間在vb.net中加載應用程序
- 20. PHP/Python/Ruby *程序員*在CSS上花費多少時間?
- 21. 應用程序需要花費時間來加載ionic2
- 22. Facebook應用程序 - 時間花費在FB
- 23. Xcode 9花費太多時間來加載應用程序
- 24. .NET應用程序花費很長時間來顯示頁面
- 25. 我如何測量在iOS中花費的網絡時間的細分?
- 26. Postgres的-馬德利布預測花費的時間比訓練
- 27. Android:測量從當前活動中花費在另一個應用程序上的時間
- 28. iOS版:信標檢測花費很長的時間
- 29. 如何減少花費在測試上的時間?
- 30. 關於花費時間的Python問題
http://stackoverflow.com/questions/673523/how-to-measure-execution-time-of-command-in-windows-command-line提供了幾種解決方案。 – timrau 2012-02-24 07:22:23