我有一个名为main.py
的文件,它引用了另一个文件Optimisers.py
,该文件中只包含函数,并在main.py
中的for
循环中使用。这些函数具有不同的优化功能。在
这个Optimisers.py
然后引用另外两个类似的文件,它们也只包含函数,它们位于while
循环中。所有这些文件都使用numpy。在
我认为这是因为在numpy中使用函数调用和创建数组的循环,这会导致内存过载。因此,我不能完成一些优化算法,或循环所有可能的坐标,我想。在
如何确保移除numpy中的变量?据我所知,numpy的C库使标准Python进程复杂化。%reset array
命令(来自下面的链接)做什么?我应该在哪里实施呢?在
另外,我读过“Releasing memory of huge numpy array in IPython”,
并且gc.collect()
也不起作用。在
当numpy数组不再被引用时,GC将自动释放它。C对象被包装在Python对象中,因此对于您来说,它的实现方式并不重要。在
确保数组没有在全局变量中被引用,因为这些数组会一直存在,直到被重写或程序退出。在
如果需要在数组超出作用域之前将其从局部变量中释放出来,可以使用
del variablename
(或仅赋值,例如None),但这不会考虑任何其他引用,只需指定一个。在要调试引用对象的位置,可以使用
gc.get_referrers(object)
。在除非您有循环或调用了
gc.disable()
,gc.collect()
将不会使GC更快地发生。在相关问题 更多 >
编程相关推荐