You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Python循环内/外调用print函数耗时差异大?如何优化?

耗时差异的核心原因

你看到的耗时差距本质是内存运算和IO操作的性能量级差异:

  • 循环内部的print(n)是终端IO操作,每次调用都需要触发系统调用,把数据从Python进程的内存输出到终端窗口,还涉及终端的渲染刷新。这类IO操作的耗时比纯内存里的n+=1运算要高几个数量级,100万次重复调用后,IO开销会被无限放大。
  • 循环外只执行一次print(n),IO开销可以忽略不计,程序的耗时几乎全是内存里的循环计数运算,所以速度极快。

你的两段测试代码:
第一段(循环内print):

n = 0

while(n<1000000):
    n+=1
    print(n)    

第二段(循环外print):

n = 0

while(n<1000000):
    n+=1

print(n)    
优化方案

如果确实需要输出所有数值,又想提升性能,可以通过减少IO操作次数来优化:

  • 批量缓存后一次性输出:先把所有要打印的内容存在内存容器(比如列表)里,最后用join拼接后一次性打印,把100万次IO操作变成1次:

    n = 0
    output = []
    while(n<1000000):
        n+=1
        output.append(str(n))
    print('\n'.join(output))
    
  • 利用缓冲区减少刷新:默认print的flush参数是False,会自动缓冲输出内容,凑够一定量才会触发一次IO。如果你的代码里手动设置了flush=True,去掉这个参数就能大幅提升速度。

  • 按需输出:如果不需要查看每一个计数,完全可以只在循环结束后打印最终结果,就像你的第二段代码那样,这是性能最优的选择。

内容的提问来源于stack exchange,提问作者user22959527

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 17:32:46