linux重定向文件容加时间,linux – Shell重定向和文件I / O持续时间

我正在以三种不同的方式将一些输出重定向到文件,并且每个输出都占用明显不同的时间.

$>/tmp/file ; time for i in {1..1000}; do for j in {1..1000}; do echo $i $j >> /tmp/file; done; done

real 0m33.467s

user 0m21.170s

sys 0m11.919s

$>/tmp/file ; exec 3>/tmp/file; time for i in {1..1000}; do for j in {1..1000}; do echo $i $j >&3; done; done; exec 3>&-

real 0m24.211s

user 0m17.181s

sys 0m7.002s

$>/tmp/file ; time for i in {1..1000}; do for j in {1..1000}; do echo $i $j; done; done >> /tmp/file

real 0m17.038s

user 0m13.072s

sys 0m3.945s

有人可以解释这里的差异.我目前的理解/怀疑是:

> 1st是最慢的,因为它多次打开/关闭文件而其他人只执行一次.是对的吗?怎么样缓冲.通常情况下,我希望所有输出都得到缓冲,在这种情况下我们不应该有这么大的时间差.

>在第3个中,如果所有输出仅在外部循环的末尾写入,则在循环仍在执行时存储的所有输出都在哪里.也许在记忆中.这是否意味着如果我回应很多东西并且只在最后写,我会耗尽内存.

>第二名更像第一名或第三名.为什么它与两者都如此不同.

PS:我已经运行了上述命令几次,发现时间是一致的.所以,我看到的差异必然是由于一些真正的原因.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值