我确信这是一个关于 python 和垃圾收集的幼稚问题。
我有一个函数可以在内存中创建一个大型数据结构,然后返回一个整数。
我期望调用函数后,数据结构使用的内存会被释放。
但是,如果我了解下面的资源调用在做什么(感谢这篇SO post),情况似乎并非如此。每次调用该函数时,python 使用的总内存似乎都会增加。(我使用的是 Python 2.7.1。)
import resource
import random
def r(n):
a = [random.randint(1,100) for i in range(1,n)]
return n # or sum(a)
resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
z=r(100000)
resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
z=r(100000)
resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
我得到的,例如:
81584128
84389888
85995520
为什么内存使用量不断增加?
谢谢!