我有一个函数f
,其中包含许多矩阵运算并返回一个较大的numpy数组(至少576x576),并且我想在一定范围的点上对该函数进行采样,并从中构造一个字典相应的值供以后使用。我这样做是使用代码:
def dict_construct(range):
d = {}
for i in values:
d[i] = f(i)
return d
当我选择一个点数过多的范围时,我的笔记本电脑上大量使用了swp内存,并且计算时间飞速增长。奇怪的是,我的物理内存使用率限制为〜30%(我的MacBook Pro具有8GB的内存)。
所以我有两个问题:1)当有足够的内存时为什么要使用swap? 2)有没有更明智的方式来构造/或存储此类词典?即可以将每个元素直接附加到文件中,因此在ram中的存储量很少。