1
ch2 2021-12-24 17:15:28 +08:00
先 del 再 gc.collect()内存就会回收的,内鬼可能是别的对象
|
2
keepeye 2021-12-24 17:20:08 +08:00
del x 之后用 gc.is_finalized(x)看下是不是 True
|
3
ipwx 2021-12-24 17:22:21 +08:00
不懂,你在循环里 del x 岂不是没用了,这循环到底干嘛的。。
|
4
ipwx 2021-12-24 17:25:32 +08:00
In [4]: for i in range(10000000000):
...: if i % 10000 == 0: ...: del x ...: gc.collect() ...: x = [] ...: else: ...: x.append(i) 这个我验证不会爆内存 |
5
liuxingdeyu OP |
6
ixuuux 2021-12-24 23:14:12 +08:00 via iPhone
尝试把 del x 改为 x.clear()
|
7
jones2000 2021-12-25 12:47:23 +08:00
把循环放到函数里面这样, 函数结束应该就会自动释放函数内使用的局部变量。
def fun(): x = [] for i in range(10000000000): x.append(i) while True: fun() |
8
ipwx 2021-12-25 21:08:15 +08:00
@liuxingdeyu 好吧,那我更正我的说法。我的程序始终稳定在 0.3MB 内存不会增长。所以是删干净了
|
9
liuxingdeyu OP |