我有一个程序,需要遍历一个巨大的列表(大约14兆),并对每个项目执行操作。我注意到当我让它在迭代过程中打印每个项目时,这需要更长的时间。所以我开始思考 - 把东西打印到屏幕上需要多长时间?或者更具体地说,这会让我的程序变慢吗?值得这么做吗?
我有一个程序,需要遍历一个巨大的列表(大约14兆),并对每个项目执行操作。我注意到当我让它在迭代过程中打印每个项目时,这需要更长的时间。所以我开始思考 - 把东西打印到屏幕上需要多长时间?或者更具体地说,这会让我的程序变慢吗?值得这么做吗?
%timeit
魔法函数轻松测量这种事情(请参见此处的教程):In [6]: %timeit print('', end='')
100000 loops, best of 3: 3.44 µs per loop
显然,实际结果将取决于许多因素,但您可以使用此方法进行一些天真的基准测试。
研究一下使用 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)