我正在嘗試使用rusage來計算某個線程的平均cpu時間。RUSAGE_THREAD不工作,尋找解決方案/替代
但是,我越來越'RUSAGE_THREAD'沒有在此範圍內聲明。
我使用
#include <sys/resource.h>
,並在我的代碼開始與-D_GNU_SOURCE
編譯和我的Linux版本是罰款。
這是我嘗試做了計算:
struct rusage l_rusage;
int retVal = getrusage(RUSAGE_THREAD, &l_rusage);
u64 userUSeconds = (static_cast<u64>(l_rusage.ru_utime.tv_sec)) * 1000000 +
(static_cast<u64>(l_rusage.ru_utime.tv_usec));
u64 systemUSeconds = (static_cast<u64>(l_rusage.ru_stime.tv_sec)) * 1000000 +
(static_cast<u64>(l_rusage.ru_stime.tv_usec));
return (userUSeconds + systemUSeconds)/ACE_OS::num_processors_online();
任何想法?或者甚至可能有其他解決方案?我也使用ACE庫,所以我有ACE_OS,但是當我嘗試使用ACE_OS :: rusage時,找不到RUSAGE_THREAD的等價物。
謝謝
編輯:另外還有一件事,我不能訪問所制線代碼實際上是,我只能用代碼內螺紋。
請嘗試創建一個[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)並向我們展示,看看代碼總是有所幫助。 –