我用 python 写了一个国际象棋引擎,它很快就消耗了 13GB 的内存。我减小了引擎的规模,并使用 objgraph 库来检查程序创建的数据结构的大小。
这是显示的内容:
Move 1527385
list 127783
function 95591
dict 86559
tuple 48816
Node 22701
Action 22648
Board 21059
我知道算法创建的棋盘对象太多,但是如何从内存中删除这些对象?我曾尝试使用 Python 的垃圾收集器库,使用 del 函数在我的程序中手动删除移动的实例,但实例的数量似乎并没有减少。
如何从我的记忆中删除这些实例?