Python Pickle加载每次迭代都更慢

2 投票
1 回答
596 浏览
提问于 2025-04-16 20:29

我有一个经过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 

撰写回答