c/c++语言开发共享getrusage()如何报告hibernate时间?

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

我想知道这会如何受到冬眠的影响。 是否报告了hibernate时间? 或者也许是系统时间? 这是在Posix的某处指定的还是这个系统依赖的?

编辑在这里向Windows提出同样的问题。

    我不认为POSIX在任何地方提到hibernate,所以它在技术上依赖于平台。

    我只能说Linux,但其他UNIX变种 – 甚至可能是Windows – 可能表现得相似,因为这是最有意义的。

    在Linux中,内核源代码下的Documentation / power / swsusp.txt中描述了在hibernate状态下发生的事情的具体细节。 简而言之,用户进程发送一个伪信号,导致它们切换到TASK_UNINTERRUPTIBLE状态。 TASK_UNINTERRUPTIBLE状态中的进程从运行队列中取出并进入hibernate状态,直到它等待的条件成为现实,因此在TASK_UNINTERRUPTIBLE花费的时间既不算作用户时间也不算作系统时间。 如果您要测量运行time(1) ,您最多会看到它有助于挂钟时间。

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

    所以,回答你的问题:根本没有报告hibernate时间。

      以上就是c/c++开发分享getrusage()如何报告hibernate时间?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/522549.html

      (0)
      上一篇 2020年12月10日
      下一篇 2020年12月10日

      精彩推荐