在python中使用大数组时是否需要释放内存?

时间:2018-04-01 11:14:53

标签: python memory

对于我的python脚本,我需要阅读多达十亿个元素的大数组。 我读了一个数组并处理它。处理后我不再需要输入了。然后我读了第二个数组并处理它,并再次不再需要输入。是否有必要显式释放我在处理后不会再次调用的数组,或者这是由垃圾收集自动完成的?

目前我只有4个阵列而且还没有任何内存问题,如果我有100个这样的阵列,这会成为问题吗?

1 个答案:

答案 0 :(得分:1)

在Python中读取垃圾收集this article。它声明你没有明确地释放内存,因为这是自动完成的。

然而,对于如此大的物体,您可能需要更加小心。使用del关键字删除对对象的所有引用,使其不再可用并将其标记为可收集到垃圾收集器。

查看this question的答案,详细了解何时使用del关键字。

例如:

# Get the data.
someList = get_list()

# Do your processing.
do_something_with(someList)

# Free the reference to the list.
del someList

或者,您可以重用该变量,而不是删除并重新分配列表的内存。由于内存分配减少,这可能会提高程序的速度。

# Get the data.
someList = get_list()

# Do your processing.
do_something_with(someList)

# Get the data.
someList = get_next_list()

# Do your processing.
do_something_with(someList)

# Free the reference to the list.
del someList