这些获取资源使用情况的方法有什么区别?

编解码器

在Linux中,我们可以使用两种方法来查找所使用的资源,例如时间,页面错误,页面交换,上下文切换一种方法是使用getrusage()函数,另一种方法是使用命令/ usr / bin / time -v [检查使用情况的命令]这些查找资源使用情况的方式之间有什么区别?

损失负责人

当您使用诸如time(1)类的命令时,它必须通过其系统库包装器使用诸如getrusage(2)之类的系统调用这正在建立一个具有正确系统调用号和结构的请求,以表明它希望获得进程子进程的使用情况信息。

为了在UNIX / POSIX操作系统之间实现兼容性,从选项层次结构中选择了用于构建命令的特定功能,以充分覆盖运行命令的OS。(某些操作系统可能无法实现所有功能,也可能有各种怪癖。)

某些情况下,它宁愿将等待孩子的分组,并将其用法组合成调用wait3,而wait3又被实现为更复杂的wait4的包装,后者具有自己的系统调用

wait3 / 4和getrusage都用信息填充相同的rusage结构,并且由于时间仅直接调用一个子进程,因此进行调用wait3()或将其分解为功能较弱的调用wait();getrusage(RUSAGE_CHILDREN),本质上是相同的。因此,时间有效地显示了与getrusage提供的数据相同的数据(连同它从系统中汇编的一些更通用的数据,例如使用调用经过的实时时间gettimeofday)。

systemcall包装器函数之间的真正区别是:

  • getrusage还有另一个论点,可以让一个过程看待自己。
  • wait4可以仅针对一个直子和该子孙的后代。
  • wait3是对wait4或它的使用的简化,其wait();getrusage()功能不像任何一种都通用,但是对于实现的time(1)命令来说已经足够了。(因此,wait3是在可用的操作系统上使用时间最简单,最安全的选择。)

为了验证它们是否相同,可以将其更改time为备用版本,重新编译并进行比较:

  while ((caught = wait3 (&status, 0, NULL)) != pid)
    {
      if (caught == -1) {
         getrusage(RUSAGE_CHILDREN, &resp->ru);
         return 0;
      }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

System Monitor中的内存使用情况报告与免费的内存使用情况报告有什么区别?

来自分类Dev

System Monitor中的内存使用情况报告和免费的内存使用情况报告有什么区别?

来自分类Dev

什么是iOS API,以获取有关应用使用情况的统计信息?

来自分类Dev

这些等待的方法有什么区别?

来自分类Dev

这些通用方法有什么区别?

来自分类Dev

获取线程的内存使用情况

来自分类Dev

这些获取当前目录的方式有什么区别?

来自分类Dev

静态Web服务器的资源使用情况

来自分类Dev

停止的Docker容器的资源使用情况

来自分类Dev

终端单命令资源使用情况

来自分类Dev

按属性对绘图资源的使用情况

来自分类Dev

ORACLE数据库资源使用情况

来自分类Dev

是否循环播放-系统资源使用情况

来自分类Dev

Linux终端单命令资源使用情况

来自分类Dev

终端单命令资源使用情况

来自分类Dev

SSH远程执行程序资源使用情况?

来自分类Dev

如何在Mac上跟踪资源使用情况?

来自分类Dev

前端中的Web API资源使用情况

来自分类Dev

静态Web服务器的资源使用情况

来自分类Dev

这些之间有什么区别?&我应该使用什么?

来自分类Dev

查看状态和会话使用情况之间的区别

来自分类Dev

有没有一种方法可以检索每个用户的G Suite资源使用情况信息?

来自分类Dev

这些ES6导入方法有什么区别?

来自分类Dev

这些命名间隔方法有什么区别?

来自分类Dev

这些Google登录方法有什么区别?

来自分类Dev

如何使用free -m获取所有用户的内存使用情况

来自分类Dev

如何使用free -m获取所有用户的内存使用情况

来自分类Dev

Windows 7任务管理器中这些不同类型的内存使用情况是什么?

来自分类Dev

这些使用sh:or的形状图之间有什么区别?

Related 相关文章

  1. 1

    System Monitor中的内存使用情况报告与免费的内存使用情况报告有什么区别?

  2. 2

    System Monitor中的内存使用情况报告和免费的内存使用情况报告有什么区别?

  3. 3

    什么是iOS API,以获取有关应用使用情况的统计信息?

  4. 4

    这些等待的方法有什么区别?

  5. 5

    这些通用方法有什么区别?

  6. 6

    获取线程的内存使用情况

  7. 7

    这些获取当前目录的方式有什么区别?

  8. 8

    静态Web服务器的资源使用情况

  9. 9

    停止的Docker容器的资源使用情况

  10. 10

    终端单命令资源使用情况

  11. 11

    按属性对绘图资源的使用情况

  12. 12

    ORACLE数据库资源使用情况

  13. 13

    是否循环播放-系统资源使用情况

  14. 14

    Linux终端单命令资源使用情况

  15. 15

    终端单命令资源使用情况

  16. 16

    SSH远程执行程序资源使用情况?

  17. 17

    如何在Mac上跟踪资源使用情况?

  18. 18

    前端中的Web API资源使用情况

  19. 19

    静态Web服务器的资源使用情况

  20. 20

    这些之间有什么区别?&我应该使用什么?

  21. 21

    查看状态和会话使用情况之间的区别

  22. 22

    有没有一种方法可以检索每个用户的G Suite资源使用情况信息?

  23. 23

    这些ES6导入方法有什么区别?

  24. 24

    这些命名间隔方法有什么区别?

  25. 25

    这些Google登录方法有什么区别?

  26. 26

    如何使用free -m获取所有用户的内存使用情况

  27. 27

    如何使用free -m获取所有用户的内存使用情况

  28. 28

    Windows 7任务管理器中这些不同类型的内存使用情况是什么?

  29. 29

    这些使用sh:or的形状图之间有什么区别?

热门标签

归档