外部命令“时间”和保留字“时间”时间可以是什么?

提姆

Bash参考手册说

使用time作为保留字允许shell内建,外壳的功能,和管道的定时。外部time命令无法轻松计时这些时间。

  1. 外部命令time时间可以做什么

    只有一个简单的外部命令?没有其他的?

    哪个规则阻止它计时其他内容?规则是属于shell(bash)还是属于外部命令的实现time

    顺便说一句,我正在运行Ubuntu,timeDebian也是如此

  2. Bash的保留字可以time计时所有可以运行的内容吗?如果没有,那该不该几点呢?

  3. 外部设备time可以计时但保留字time不能计时的是什么?

175

我的答案是关于Linux的。

  1. 哪个规则阻止它计时其他内容?

我猜它只获取进程的时间信息,因为它实际上使用wait4系统调用来获取此时间信息的第一个参数wait4是进程的pid。因此,请/usr/bin/time务必先致电execve,然后再等待4。

顺便一提:

execve()执行文件名指向的程序。filename必须是二进制可执行文件,或者是以以下形式的行开头的脚本:#!解释器[optional-arg]

所以/ usr / bin / time需要一些可以由 execve

  1. Bash的保留字时间可以计时所有可以运行的内容吗?

我猜是。它被实现为两组呼叫:

10:06:03 getrusage(RUSAGE_SELF, {ru_utime={0, 152976}, ru_stime={0, 465929}, ru_maxrss=4052, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=6214, ru_majflt=1, ru_nswap=0, ru_inblock=368, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=6349, ru_nivcsw=12}) = 0
10:06:03 getrusage(RUSAGE_CHILDREN, {ru_utime={2, 259656}, ru_stime={1, 888712}, ru_maxrss=21176, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=64297, ru_majflt=4, ru_nswap=0, ru_inblock=272, ru_oublock=368, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=56077, ru_nivcsw=386}) = 0

运行命令或内置

10:06:04 getrusage(RUSAGE_SELF, {ru_utime={0, 152976}, ru_stime={0, 476927}, ru_maxrss=4052, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=6243, ru_majflt=1, ru_nswap=0, ru_inblock=368, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=6399, ru_nivcsw=13}) = 0
10:06:04 getrusage(RUSAGE_CHILDREN, {ru_utime={2, 271654}, ru_stime={1, 903710}, ru_maxrss=21176, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=64514, ru_majflt=4, ru_nswap=0, ru_inblock=272, ru_oublock=368, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=56079, ru_nivcsw=406}) = 0

所以我想bash只是计算出一个差异并打印出来。通过这种方式,它可以测量任何东西,例如自己的内置文件或子进程

  1. 外部时间可以计时但保留字时间不能计时的是什么?

实际上,这两个系统调用getrusage,并wait4从内核获得结构rusage使用但是bash time,从此结构中打印有限数量的字段。这是从man 1 time

注意:某些外壳程序(例如bash(1))具有内置的time命令,该命令提供的功能少于此处描述的命令。

$/usr/bin/time -v  seq 10000
    Command being timed: "seq 10000"
    User time (seconds): 0.01
    System time (seconds): 0.01
    Percent of CPU this job got: 24%
    Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.12
    Average shared text size (kbytes): 0
    Average unshared data size (kbytes): 0
    Average stack size (kbytes): 0
    Average total size (kbytes): 0
    Maximum resident set size (kbytes): 2640
    Average resident set size (kbytes): 0
    Major (requiring I/O) page faults: 0
    Minor (reclaiming a frame) page faults: 199
    Voluntary context switches: 8
    Involuntary context switches: 24
    Swaps: 0
    File system inputs: 0
    File system outputs: 8
    Socket messages sent: 0
    Socket messages received: 0
    Signals delivered: 0
    Page size (bytes): 4096
    Exit status: 0

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Shell内置,函数,管道和命令列表上的保留字和命令“时间”之间的区别?

可以“查找”命令保留访问时间

从互联网更新时间和日期的命令是什么

更新属性“时间戳”保留字

外部调用的时间命令

日期和时间格式是什么?

为什么Bash将时间实现为保留字而不是内置字?

通过名为“时间戳”(保留字)的列查询Amazon DynamoDB

在UNIX中,挂钟时间,用户cpu时间和系统cpu时间具体是什么?

这个时间/日期时间的类型是什么?

时间命令执行结果是什么意思?

在长时间复制期间,“ du”命令的输出是什么?

在命令行中使用“时间”时,“系统时间”是什么

Python可以代表的最长时间是什么?

Powershell 时间格式是什么

Date()的时间源是什么?

数组中的大数可以是要转换的时间戳吗?

cd外部命令的作用是什么?

在Clojure中获取日期和时间的最佳方法是什么?

是什么导致Java中较长的旋转和同步时间?

为什么没有许多命令和鱼的时间戳记?

熊猫时间戳:修改日期和保留时间

有什么功能可以找到日期和时间之间的差异在php中的日期时间吗?

时间包中“便捷时间戳”的目的是什么?

往返时间时间戳的最佳方法是什么?

在一定时间后打开程序的 Windows 命令行命令是什么?

TypeScript中的“类型”保留字是什么?

官方的XML保留字符是什么?

为什么实时时间可以低于用户时间