变量的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