Этот python код замедляется, чем дольше он работает.
Кто-нибудь, пожалуйста, скажите мне, почему?
Я надеюсь, что он не переиндексирует каждую строку, которую я запрашиваю и считая с самого начала опять же думал будет какой-то файл-поток?!
от 10к до 20к уходит 2 сек c. от 300к до 310к занимает примерно 5 мин. и становится хуже. Код работает только в части ELSE до этого момента, и 'listoflines' является постоянным в этой точке (850000 строк в списке), а тип 'list []', а также 'offset' - это просто константа 'int' в в этой точке.
Исходный файл содержит от миллионов строк до более чем 20 миллионов строк.
'фиктивная строка не в listoflines' должна выполняться каждый раз в одно и то же время.
with open(filename, "rt") as source:
for dummyline in source:
if (len(dummyline) > 1) and (dummyline not in listoflines):
# RUN compute
# this part is not reached where I have the problem
else:
if dummyalreadycheckedcounter % 10000 == 0:
print ("%d/%d: %s already checked or not valid " % (dummyalreadycheckedcounter, offset, dummyline) )
dummyalreadycheckedcounter = dummyalreadycheckedcounter +1