C getrusage()如何报告休眠时间?

C getrusage()如何报告休眠时间?,c,profiling,posix,getrusage,C,Profiling,Posix,Getrusage,我目前正在使用getrusage来告诉我在应用程序的事件循环中花费了多少时间 我想知道冬眠会如何影响这一点。是否报告了休眠时间?或者作为系统时间?这是在Posix中指定的还是依赖于系统 编辑对Windows提出同样的问题。我认为POSIX在任何地方都没有提到休眠,因此它在技术上依赖于平台 我只能说Linux,但其他UNIX变体——甚至可能是Windows——的行为可能类似,因为这才是最有意义的 在Linux中,内核源代码下的文档/power/swsus.txt中描述了在休眠状态下发生的事情的确切

我目前正在使用
getrusage
来告诉我在应用程序的事件循环中花费了多少时间

我想知道冬眠会如何影响这一点。是否报告了休眠时间?或者作为系统时间?这是在Posix中指定的还是依赖于系统


编辑对Windows提出同样的问题。

我认为POSIX在任何地方都没有提到休眠,因此它在技术上依赖于平台

我只能说Linux,但其他UNIX变体——甚至可能是Windows——的行为可能类似,因为这才是最有意义的

在Linux中,内核源代码下的文档/power/swsus.txt中描述了在休眠状态下发生的事情的确切细节。简言之,向用户进程发送一个虚假信号,使其切换到
任务\u不间断
状态。处于
TASK\u unterruptible
状态的进程将从运行队列中取出并进入睡眠状态,直到其等待的条件实现,因此在
TASK\u unterruptible
中花费的时间既不算作用户时间,也不算作系统时间。如果使用
时间(1)
测量运行时,您最多会看到它对挂钟时间的贡献

使用
getrusage(2)
,您将看不到任何报告的CPU时间的差异,因为进程无法运行


所以,为了回答您的问题:根本不报告休眠时间。

AFAIK POSIX不知道休眠。