簡體   English   中英

c++ 升壓計算在 function 中花費的時間

[英]c++ boost calculate time spent in function

再次問一個提升問題:我需要在我的提升線程中計算在 function 中花費的時間:這是代碼:

boost::posix_time::microseconds tes( 12 );
int i = 0;
while( true )
{
    boost::posix_time::ptime start = boost::posix_time::microsec_clock::local_time( );

    myFunction( );

    boost::this_thread::sleep( tes );   

    boost::posix_time::ptime end = boost::posix_time::microsec_clock::local_time( );

    boost::posix_time::time_duration elapsed = end - start;
}

所以我嘗試了很多次,但經過的 time_duration 始終為 0,我添加了測試 12 微秒的睡眠 function,所以最好的方法是我將經過 12 微秒但仍然為 0 .. 我需要告訴線程讀取時間后更新計時器?

謝謝

根據boost 文檔local_time在 Win32 系統上可能無法達到微秒級分辨率:

ptime microsec_clock::local_time()

使用亞秒級分辨率時鍾獲取本地時間。 在 Unix 系統上,這是使用 GetTimeOfDay 實現的。 在大多數 Win32 平台上,它是使用 ftime 實現的。 Win32 系統通常無法通過此 API 實現微秒級分辨率。 如果更高的分辨率對您的應用程序至關重要,請測試您的平台以查看達到的分辨率。

可能您唯一的選擇是使用高分辨率計時器(非便攜式)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM