这个问题在这里已经有了答案:
Free memory in Python
(2 个回答)
Releasing memory in Python
(4 个回答)
How to free memory of python deleted object?
(1 个回答)
2年前关闭。
让我们考虑一个简单的情况,
var = 5
var = 6
第一行赋值
5
至var
下一行重新分配 6
至var
.只是出于好奇,是否值 5
是否会自动从 CPU 的内存中删除?如果不是,那么理论上,下面的python代码会因为内存消耗而炸毁我的电脑吗?var = 5
while True:
var = var + 1
最佳答案
是的,var
此时不再保持其先前的值不从内存中删除。在 CPython(Python 的通常实现)中:
var
后立即发生因为 CPython 使用引用计数 在任何合理的 Python 实现中,您的循环都不会用旧的整数填充内存。在实践中,它使用少量有限的内存。
in theory
理论上,Python 具有任意大小的整数,因此在 216,000,000,000 次循环迭代后,您将使用(例如)2 GB 的内存。由于这个原因,你永远不会接近耗尽内存,因为宇宙中没有足够的时间到达那里。
关于python - 考虑 `var = 5` ,一旦我将另一个值重新分配给 `5` ,计算机会自动删除值 `var` 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57174902/