我正在尝试使用rusage来计算某个线程的Avg cpu时间。
但是,我在这个范围内没有宣布'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的等价物。
谢谢
编辑:另外一件事,我无法访问线程制作代码的实际位置,我只能使用线程内的代码。