我正在通过某人发布的link about generators。在开始时他比较了以下两个函数。在他的设置中,他发现发电机的速度提高了5%。蟒蛇发电机速度3
我正在运行Windows XP,python 3.1.1,并且似乎无法重复结果。在使用所提供的日志和高达1GB的重复数据进行测试时,我一直将“旧方式”(logs1)显示为略快。
有人可以帮助我了解发生了什么不同吗?
谢谢!
def logs1():
wwwlog = open("big-access-log")
total = 0
for line in wwwlog:
bytestr = line.rsplit(None,1)[1]
if bytestr != '-':
total += int(bytestr)
return total
def logs2():
wwwlog = open("big-access-log")
bytecolumn = (line.rsplit(None,1)[1] for line in wwwlog)
getbytes = (int(x) for x in bytecolumn if x != '-')
return sum(getbytes)
*编辑,拷贝/粘贴
在我看来,这两个功能本质上是一样的。在任何情况下,你都可以建立一个巨大的清单,而你可以使用生成器。所以我并不感到惊讶,他们跑的速度相同。 – MatrixFrog 2010-03-08 05:10:52
这是有道理的,我只是好奇他为什么得到5%的速度增加,我看到一直下降1%。 – Will 2010-03-08 05:54:39