gpt4 book ai didi

c++ - RUSAGE_THREAD 不起作用,寻找解决方案/替代方案

转载 作者:太空宇宙 更新时间:2023-11-04 05:43:37 24 4
gpt4 key购买 nike

我正在尝试使用 rusage 计算某个线程的平均 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 的等效项。

谢谢

编辑:还有一件事,我无法访问线程生成代码的实际位置,我只能使用线程内的代码。

最佳答案

manual page说你需要定义宏_GNU_SOURCE而不是__USE_GNU

关于c++ - RUSAGE_THREAD 不起作用,寻找解决方案/替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36034837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com