Python Pickle加载每次迭代都更慢
我有一个经过gzip压缩的pickle文件,大小是4MB。每次我打开这个文件并加载它时,解压的时间越来越长。文件的内容从来没有改变,大小也一直保持不变。
测试时间:
第一次运行:27.5秒
第二次运行:44.1秒
第三次运行:52.7秒
我使用的代码如下:
f = gzip.open( filepath, "rb" )
pickleFile = cPickle.Unpickler( f )
paData = pickleFile.load()
f.close()
有没有人知道为什么每次运行时加载的时间会变得更长呢?
1 个回答
0
我创建了两个测试的pickle文件,一个是3MB,另一个是22MB,然后把它们压缩成一个zip文件。
我不太明白你在做什么,因为我刚刚做了一个测试,运行了这段代码:
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
每次运行它时,输出的结果都是一样的。
3MB的文件:
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
22MB的文件:
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