2011-06-29 24 views
1

我有一个gzip'd腌制文件,大小为4mb。每次我打开文件并加载它时,拔出花费的时间会更长。该文件的内容不会改变,大小保持不变。Python腌汁加载每个迭代时间更长

测试时间:
第1轮:27.5s
第2轮:44.1s
第3道:52.7s

我正在使用的代码如下:

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

任何想法为什么每次运行都需要更长的时间?

+1

你加载它不止一次在同一个运行Python进程多,或者是你每次运行一个新的进程? –

+0

我假设同样的过程,因为我没有为多处理设置任何东西。 –

+1

我不是指多处理。 *测试运行之间会发生什么?您是退出Python进程吗?或者您是否在同一个Python进程中加载​​了三次pickle文件? –

回答

0

我创建了两个测试pickle文件3MBs和22MBs,并将其压缩。

我不明白你在做什么,因为我只是做了测试和验证码:

​​

始终打印出来的一样,因为我运行它。

3 MB文件:

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 
+0

腌渍是否受其加载的数据深度影响?我的文件基本上是字典的字典,其格式为: paData = {'type':'anim','frames':{frame:nodeData},'image':'imgpath'}和nodeData = {'attr_name' :(value,bool)} ...这个评论只是关于时间的差异。 –

+0

似乎你是对的尼克斯。我已经完全将代码从原始上下文中剥离出来,像你一样运行一个测试,现在我得到了一致的时间。奇怪的是,在完整环境下的相同测试产生了不同的结果......回到绘图板。 –

+0

“完全上下文”代码中正在做什么类型的东西? – Nix