加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – unix中的time of head命令

发布时间:2020-12-15 22:39:25 所属栏目:安全 来源:网络整理
导读:我想知道在unix中使用time命令的开销是多少. 我知道如何使用它,但我想知道命令多长时间 $time java HelloWorld 接受终端,而不是命令 $java HelloWorld 我特别感兴趣的是这个开销如何随着正在运行的程序的持续时间而变化. 背景:: 我用它来衡量一堆用Java编写
我想知道在unix中使用time命令的开销是多少.

我知道如何使用它,但我想知道命令多长时间

$time java HelloWorld

接受终端,而不是命令

$java HelloWorld

我特别感兴趣的是这个开销如何随着正在运行的程序的持续时间而变化.

背景::
我用它来衡量一堆用Java编写的长期运行实验所花费的时间.

解决方法

开销是固定的,并且基于 source code,仅仅是因为正在启动额外的过程(时间过程本身),引入了少量的额外处理(a).通常,shell会启动你的程序,但在这种情况下,shell启动时间和时间开始你的进程(使用fork).

这个额外的处理包括:

>论证处理.
>分叉和执行孩子所花费的时间.

当正在测量的过程正在运行时,时间本身只是等待它退出(通过等待调用),因此对过程没有影响.

因此,虽然时间过程的启动时间实际上包含在测量中,但这些只对非常短的过程有意义.如果您的流程运行了相当长的时间,那么时间的开销就无关紧要了.

至于我的意思,你可以通过使用非常快的可执行文件运行它来查看效果时间,并且还可以看看对于运行时间较长的进程是否有任何明显的开销增加:

pax> time sleep 0
real    0m0.001s
user    0m0.000s
sys     0m0.000s

pax> time sleep 1
real    0m1.001s
user    0m0.000s
sys     0m0.000s

pax> time sleep 10
real    0m10.001s
user    0m0.000s
sys     0m0.004s

pax> time sleep 100
real    1m40.001s
user    0m0.000s
sys     0m0.000s

换句话说,几乎没有任何影响.

现在,因为如果它们长时间运行你很可能只是计时过程(除非你连续多次运行,否则很难关注单个过程是否需要一到两毫秒,在这种情况下会更好提高性能的方法),固定的时间开销变得越来越不重要.

(a):并且,如果你正在使用内置时间的shell(例如带有时间保留字的bash),即使是那么小的开销也会消失.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读