请考虑以下脚本:
l = [i for i in range(int(1e8))]
l = []
import gc
gc.collect()
# 0
gc.get_referrers(l)
# [{'__builtins__': <module '__builtin__' (built-in)>, 'l': [], '__package__': None, 'i': 99999999, 'gc': <module 'gc' (built-in)>, '__name__': '__main__', '__doc__': None}]
del l
gc.collect()
# 0
Run Code Online (Sandbox Code Playgroud)
关键是,在所有这些步骤之后,我的机器上的这个python进程的内存使用率大约是30%(Python 2.6.5,请求的更多细节?).这是top的输出的摘录:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5478 moooeeeep 20 0 2397m 2.3g 3428 S 0 29.8 0:09.15 ipython
Run Code Online (Sandbox Code Playgroud)
RESP.ps aux:
moooeeeep 5478 1.0 29.7 2454720 2413516 pts/2 S+ 12:39 …Run Code Online (Sandbox Code Playgroud)