现在遇见一个奇怪的问题 使用的 Python2.7
代码:
from memory_profiler import profile
import gc
@profile
def test():
a = [1] * 10000000
b = [2] * 10000000
c = [3] * 10000000
d = [4] * 10000000
e = [5] * 10000000
f = [6] * 10000000
del a
del b
del c
@profile
def test1():
test()
gc.collect()
print 'end '
if __name__ == '__main__':
test1()
发现 a,b,c,d,e,f 这些变量在调用完 test 后还存在,执行了 gc.collect()还是存在
Line # Mem usage Increment Line Contents
================================================
26 36.4 MiB 36.4 MiB @profile
27 def test():
28 112.7 MiB 76.3 MiB a = [1] * 10000000
29 189.0 MiB 76.3 MiB b = [2] * 10000000
30 265.3 MiB 76.3 MiB c = [3] * 10000000
31 341.6 MiB 76.3 MiB d = [4] * 10000000
32 417.9 MiB 76.3 MiB e = [5] * 10000000
33 494.2 MiB 76.3 MiB f = [6] * 10000000
34 494.2 MiB 0.0 MiB del a
35 494.2 MiB 0.0 MiB del b
36 494.2 MiB 0.0 MiB del c
Line # Mem usage Increment Line Contents
================================================
39 36.4 MiB 36.4 MiB @profile
40 def test1():
41 494.2 MiB 457.8 MiB test()
42 494.2 MiB 0.0 MiB gc.collect()
43 494.2 MiB 0.0 MiB print 'end '
不知道怎么上传图片,抱歉只能这么看了 0.0
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.