重复函数中大数组的Python内存使用

2024-06-07 13:01:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Python编写了一个函数,它返回一个大的2dnumpy数组(2**13,2**13),称之为pdd。在

导入pdd

阵列=pdd.功能(一些东西)

如果我在内存使用量跳到几GB时调用函数。如果我再次运行同样的命令 阵列=pdd.功能(一些东西) 内存使用量大约翻倍,就像它是第二个同样大小的数组,而不仅仅是重写并发数组。问题是我想在mcmc采样器中使用这个函数,对函数的多次重复调用,显然不能正常工作。在

那么,有没有什么方法可以释放内存,或者函数中的某些东西来优化或最小化使用呢??在

编辑

我似乎已经解决了这个问题。在尝试了几件事之后,似乎是西皮的错。在函数内部有几个2d fft,我使用的是scipy的fftpack fft2和ifft2。这导致使用大量内存创建一些大型数组,每次函数调用都会在内存中留下/添加超过1 gb的内存。当我改用NUMPYSFFT2和ifft2时,它就消失了。现在,函数在左边结束后,我的一个数组有几百Mb的内存,并且不再添加后续的函数调用。在

我不知道也不明白为什么会这样,我觉得奇怪的是,在这种情况下,纽比会比scipy更好,但事实确实如此。在


Tags: 方法函数内存命令功能scipy数组使用量

热门问题