Загрузка Python Pickle занимает больше каждой итерации - PullRequest
1 голос
/ 29 июня 2011

У меня есть маринованный файл gzip размером 4 МБ. Каждый раз, когда я открываю файл и загружаю его, время, необходимое для распечатывания, занимает больше времени. Содержимое файла никогда не изменяется, а размер остается неизменным.

Время испытаний:
1-й пробег: 27,5 с
2-й прогон: 44,1 с
3-й запуск: 52,7 с

Код, который я использую, выглядит следующим образом:

f = gzip.open( filepath, "rb" )
pickleFile = cPickle.Unpickler( f )
paData = pickleFile.load()
f.close()

Есть идеи, почему при каждом запуске загружается больше времени?

1 Ответ

0 голосов
/ 29 июня 2011

Я создал два файла с тестовым выбором 3MB и 22MB и сжал его.

Я не понимаю, что вы делаете, потому что я только что сделал тест и этот код:

def get_time():
    return int(time.time())

while(count < 10):    
    filepath='/home/shared/word_out.gz'
    start = get_time()
    f = gzip.open( filepath, "rb" )
    pickleFile = cPickle.Unpickler( f )
    paData = pickleFile.load()
    f.close()
    end = get_time()

    print 'Time ellapsed' , end - start
    count+=1

Всегда печатает так же, как я запускаю.

3 МБ Файл:

Time ellapsed 1
Time ellapsed 1
Time ellapsed 0
Time ellapsed 1
Time ellapsed 1
Time ellapsed 0
Time ellapsed 1
Time ellapsed 1
Time ellapsed 0
Time ellapsed 1

22 МБ Файл:

Time ellapsed 5
Time ellapsed 4
Time ellapsed 2
Time ellapsed 2
Time ellapsed 3
Time ellapsed 2
Time ellapsed 3
Time ellapsed 2
Time ellapsed 2
Time ellapsed 2 
...