打印到屏幕上需要多长时间?

3

我有一个程序,需要遍历一个巨大的列表(大约14兆),并对每个项目执行操作。我注意到当我让它在迭代过程中打印每个项目时,这需要更长的时间。所以我开始思考 - 把东西打印到屏幕上需要多长时间?或者更具体地说,这会让我的程序变慢吗?值得这么做吗?


1
http://stackoverflow.com/help/how-to-ask - Jacob Krall
2个回答

1
你可以使用IPython的%timeit魔法函数轻松测量这种事情(请参见此处的教程):
In [6]: %timeit print('', end='')
100000 loops, best of 3: 3.44 µs per loop

显然,实际结果将取决于许多因素,但您可以使用此方法进行一些天真的基准测试。


它是否完全依赖于机器,还是Python有某种瓶颈? - Charles Noon
在屏幕上显示东西是很慢的。我非常确定无论你使用Python还是其他任何语言,这都是真实的。 - Kevin
很可能,它在某种程度上依赖于机器、操作系统、应用程序、Python版本、系统负载和古老神灵的意愿。如果你需要精确的结果,你将不得不尽可能接近真实情况进行基准测试 :/ 你说的“Python是否有某种瓶颈?”是什么意思?如果它比其他语言慢得多?我对此并不确定,但我不认为是这样;事实上,任何IO操作都会显著降低CPU密集型任务的速度,这是相当正常的。 - jdehesa

0

研究一下使用 timeit 模块。

import timeit

检查这两个调用之间的差异。在这些示例中,number是stmt代码被调用的次数。

timeit.timeit(stmt='print(str1[:5])',setup='str1 = "Hello, World!"',number=1000)

对比

timeit.timeit(stmt='str1[:5]',setup='str1 = "Hello, World!"',number=1000)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接