变量的Python内存管理
我有一个关于python内存管理的问题。 我有以下代码
def operation(data): #some manipulations on data result=something.do(data) #some manipulations on result return result
现在我多次调用此函数operation
(可能超过200次)。 每当我调用operation
python是否对result
变量使用相同的内存? 与在C
我们可以使用Malloc
一次分配内存并使用相同的内存以避免碎片。
像Python这样的高级语言的全部意义在于它们使您不必担心内存管理。 如果对内存分配的精确控制对您很重要,则应编写C.如果不是,则可以编写Python。
正如大多数Python程序员将根据他们的经验告诉你的那样,手动内存管理并不像你想象的那么重要。
不,不是的。
但是,您可以在C中编写优化代码并在python中使用它:
http://docs.python.org/2/extending/extending.html
如果您担心性能,这将有所帮助。
不,不是,但这不是什么大不了的事,因为一旦你从函数返回,变量就会被删除,所以不会涉及记忆容量问题。 如果你在谈论性能水平,那么就性能而言,这并不重要。
@heisenberg
您的问题非常有效,正如您刚才预期的那样,上面的代码可能会创建一小段空闲内存块。 但有趣的是,这里需要注意的是:这个免费块不会返回给操作系统,而是python的内存管理器管理它自己的大块空闲内存块。
但同样,python可以使用这个空闲内存块将相同的块分配给下一个请求。
同样美丽的解释如下: http : //deeplearning.net/software/theano/tutorial/python-memory-management.html