python print影响速度_为什么打印到stdout这么慢?能加快速度吗?

我总是对用打印语句简单地输出到终端需要多长时间感到惊讶/沮丧。在最近几次痛苦而缓慢的日志记录之后,我决定对其进行研究,并惊讶地发现几乎所有的时间都在等待终端处理结果。

给stdout写信能加快速度吗?

我写了一个脚本('print_timer.py'在这个问题的底部)来比较将100k行写入stdout、文件和将stdout重定向到/dev/null时的时间。以下是计时结果:$ python print_timer.py

this is a test

this is a test

this is a test

-----

timing summary (100k lines each)

-----

print :11.950 s

write to file (+ fsync) : 0.122 s

print with stdout = /dev/null : 0.050 s

哇哦。为了确保python不会在幕后做一些事情,比如识别出我将stdout重新分配给了/dev/null或者其他什么,我在脚本之外进行了重定向。。。$ python print_timer.py > /dev/null

-----

timing summary (100k lines each)

-----

print : 0.053 s

write to file (+fsync) : 0.108 s

print with stdout = /dev/null : 0.045 s

所以这不是一个python技巧,它只是一个终端。我一直知道将输出转储到/dev/null会加快速度,但从未想到它有那么重要!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值