Python将为int value保留空间,即使int value已被删除,如下所示:
age = 9999
del age
存储变量age的内存将被用来存储其他int值,因此,这个内存永远不会调用free函数,但我不知道string object是否使用相同的策略来管理内存?我的意思是字符串的内存分配永远不会被释放。在
为什么python永远不会为int object释放内存,请阅读以下博客: http://www.laurentluce.com/posts/python-integer-objects-implementation/
python will manage a free_list(python-2.7.3 source code:intobject.c line:45) to hold every memory alloc for a int object and will never dealloc it
Python为您管理所有内存。如果一个值被名称引用,它将保留在内存中。一旦某个值不再被任何名称引用,解释器就可以自由地回收内存。你不用担心这个。在
我不明白你的例子,或者你为什么认为“年龄”使用的记忆会被重复使用。请记住,Python名称不同于C变量:它们不代表分配的内存。它们是可以引用值的标签。在
如果您查看python字符串实现,您会发现releavent行:
这表明字符串是使用python的malloc简单地分配的。它们不像整数那样使用池,因为python字符串对象的大小取决于字符串的长度。所以不能像对待整数那样使用池。在
参见:http://www6.uniovi.es/python/dev/src/c/html/stringobject_8c-source.html
相关问题 更多 >
编程相关推荐