我有python代码,其中有一个带pickle负载的连续循环。我在循环中有200个pickle文件,每个文件在一个SSD驱动器上大约80mb。你知道吗
当我运行代码时,我体验到pickle负载的性能是不断波动的:主要在0,2秒左右,但有时它会“暂停”4-6秒,从而降低进程的整体基准。你知道吗
有什么问题吗?你知道吗
def unpickle(filename):
fo = open(filename, 'r')
contents = cPickle.load(fo)
fo.close()
return contents
for xd in self.X:
tt = time()
xdf = unpickle(xd)
tt = time() - tt
print tt
输出:
1.87527704239
4.30886101723
0.259668111801
0.234542131424
0.228765964508
0.214528799057
0.213661909103
0.215914011002
0.217473983765
0.225739002228
我创建pickle文件的方式: 我有一个pandas数据框,列为:“name”,“source”,“level”,“image”,“path”,“is\u train”。 有关尺寸的主要数据是“图像”。 我用以下方法腌制它:
def pickle(filename, data):
with open(filename, 'w') as fo:
cPickle.dump(data, fo, protocol=cPickle.HIGHEST_PROTOCOL)
你的问题非常不清楚(特别是,你应该给我们足够的信息,让我们自己复制你的测试用例),但这感觉像GC暂停或内存碎片整理。你知道吗
Pickle是一种非常低效的格式,处理16gb的数据必然会导致严重的内存破坏。你知道吗
相关问题 更多 >
编程相关推荐