Я просматриваю ссылку на генераторы, которую кто-то разместил. Вначале он сравнивает две приведенные ниже функции. На своей установке он показал увеличение скорости на 5% с генератором.
Я использую Windows XP, Python 3.1.1 и не могу воспроизвести результаты. Я продолжаю показывать «старый способ» (logs1) как немного более быстрый при тестировании с предоставленными журналами и до 1 ГБ дублированных данных.
Может ли кто-нибудь помочь мне понять, что происходит по-другому?
Спасибо!
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)
*edit, интервалы перепутаны при копировании/вставке