簡體   English   中英

Python內存管理變量

[英]Python memory management for variables

我對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

如果您擔心性能,這將有所幫助。

不,不是,但這不是什么大問題,因為一旦從函數返回,該變量將被刪除,因此不會涉及存儲容量問題。 如果您正在談論性能級別,那么就性能而言並沒有太大關系。

@海森堡

您的問題非常有效,正如您之前所預期的那樣,以上代碼可能會創建少量的空閑內存塊。 但是這里需要指出的有趣一點是:這些空閑塊不會返回給操作系統,而是python的內存管理器管理自己的空閑塊。

但是同樣,python可以使用此空閑內存塊為下一個請求分配相同的塊。

http://deeplearning.net/software/theano/tutorial/python-memory-management.html上給出的相同內容的詳細說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM