最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

簡單了解python的內(nèi)存管理機制

 更新時間:2019年07月08日 09:00:23   作者:迎風(fēng)而來  
這篇文章主要介紹了簡單了解python的內(nèi)存管理機制,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

Python引入了一個機制:引用計數(shù)。

引用計數(shù)

python內(nèi)部使用引用計數(shù),來保持追蹤內(nèi)存中的對象,Python內(nèi)部記錄了對象有多少個引用,即引用計數(shù),當(dāng)對象被創(chuàng)建時就創(chuàng)建了一個引用計數(shù),當(dāng)對象不再需要時,這個對象的引用計數(shù)為0時,它被垃圾回收。

總結(jié)一下對象會在一下情況下引用計數(shù)加1:

1.對象被創(chuàng)建:x=4

2.另外的別人被創(chuàng)建:y=x

3.被作為參數(shù)傳遞給函數(shù):foo(x)

4.作為容器對象的一個元素:a=[1,x,'33']

引用計數(shù)減少情況

1.一個本地引用離開了它的作用域。比如上面的foo(x)函數(shù)結(jié)束時,x指向的對象引用減1。

2.對象的別名被顯式的銷毀:del x ;或者del y

3.對象的一個別名被賦值給其他對象:x=789

4.對象從一個窗口對象中移除:myList.remove(x)

5.窗口對象本身被銷毀:del myList,或者窗口對象本身離開了作用域。

垃圾回收

1、當(dāng)內(nèi)存中有不再使用的部分時,垃圾收集器就會把他們清理掉。它會去檢查那些引用計數(shù)為0的對象,然后清除其在內(nèi)存的空間。當(dāng)然除了引用計數(shù)為0的會被清除,還有一種情況也會被垃圾收集器清掉:當(dāng)兩個對象相互引用時,他們本身其他的引用已經(jīng)為0了。

2、垃圾回收機制還有一個循環(huán)垃圾回收器, 確保釋放循環(huán)引用對象(a引用b, b引用a, 導(dǎo)致其引用計數(shù)永遠不為0)。

在Python中,許多時候申請的內(nèi)存都是小塊的內(nèi)存,這些小塊內(nèi)存在申請后,很快又會被釋放,由于這些內(nèi)存的申請并不是為了創(chuàng)建對象,所以并沒有對象一級的內(nèi)存池機制。這就意味著Python在運行期間會大量地執(zhí)行malloc和free的操作,頻繁地在用戶態(tài)和核心態(tài)之間進行切換,這將嚴重影響Python的執(zhí)行效率。為了加速Python的執(zhí)行效率,Python引入了一個內(nèi)存池機制,用于管理對小塊內(nèi)存的申請和釋放。

內(nèi)存池機制

Python提供了對內(nèi)存的垃圾收集機制,但是它將不用的內(nèi)存放到內(nèi)存池而不是返回給操作系統(tǒng)。

Python中所有小于256個字節(jié)的對象都使用pymalloc實現(xiàn)的分配器,而大的對象則使用系統(tǒng)的 malloc。另外Python對象,如整數(shù),浮點數(shù)和List,都有其獨立的私有內(nèi)存池,對象間不共享他們的內(nèi)存池。也就是說如果你分配又釋放了大量的整數(shù),用于緩存這些整數(shù)的內(nèi)存就不能再分配給浮點數(shù)。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • jupyter .ipynb轉(zhuǎn).py的實現(xiàn)操作

    jupyter .ipynb轉(zhuǎn).py的實現(xiàn)操作

    這篇文章主要介紹了jupyter .ipynb轉(zhuǎn).py的實現(xiàn)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python原始套接字編程實例解析

    Python原始套接字編程實例解析

    這篇文章主要介紹了Python原始套接字編程實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • python解析多層json操作示例

    python解析多層json操作示例

    這篇文章主要介紹了python解析多層json操作,結(jié)合實例形式分析了Python針對多層json文件的讀取、解析、修改、保存等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12
  • Python 對象中的數(shù)據(jù)類型

    Python 對象中的數(shù)據(jù)類型

    對于python,一切事物都是對象,程序中存儲的所有數(shù)據(jù)都是對象,對象基于類創(chuàng)建。這篇文章主要介紹了Python 對象之?dāng)?shù)據(jù)類型 ,需要的朋友可以參考下
    2017-05-05
  • 用python刪除文件夾中的重復(fù)圖片(圖片去重)

    用python刪除文件夾中的重復(fù)圖片(圖片去重)

    近期在整理相冊的時候,發(fā)現(xiàn)相冊中有許多重復(fù)圖片,人工一張張篩查刪除太枯燥,便寫下這個python腳本,用于刪除文件夾下重復(fù)的圖片
    2021-05-05
  • Python中Json使用示例詳解

    Python中Json使用示例詳解

    這篇文章主要介紹了Python中Json使用,主要介紹一下python?中?json的使用?如何把dict轉(zhuǎn)成json?、object?轉(zhuǎn)成json?、以及json轉(zhuǎn)成對象,需要的朋友可以參考下
    2022-07-07
  • python使用requests設(shè)置讀取超時時間

    python使用requests設(shè)置讀取超時時間

    在Python中,使用requests庫進行網(wǎng)絡(luò)請求時,可以通過設(shè)置?timeout參數(shù)來指定讀取超時時間,本文就來介紹一下,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • Python3.4編程實現(xiàn)簡單抓取爬蟲功能示例

    Python3.4編程實現(xiàn)簡單抓取爬蟲功能示例

    這篇文章主要介紹了Python3.4編程實現(xiàn)簡單抓取爬蟲功能,涉及Python3.4網(wǎng)頁抓取及正則解析相關(guān)操作技巧,需要的朋友可以參考下
    2017-09-09
  • 使用Python實現(xiàn)windows下的抓包與解析

    使用Python實現(xiàn)windows下的抓包與解析

    這篇文章主要介紹了使用Python實現(xiàn)windows下的抓包與解析,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python使用pooch實現(xiàn)下載網(wǎng)絡(luò)文件

    python使用pooch實現(xiàn)下載網(wǎng)絡(luò)文件

    pooch是python的一個模塊,主打一個更加方便地下載文件,適用于科研人員和開發(fā)者,目前,已經(jīng)有scikit-image, MetPy, scipy, seaborn等項目采用pooch作為內(nèi)置數(shù)據(jù)集的下載方法,本文給大家介紹了python用pooch便捷地下載網(wǎng)絡(luò)文件,需要的朋友可以參考下
    2024-01-01

最新評論

成都市| 平塘县| 天祝| 黄冈市| 万山特区| 乌恰县| 思南县| 平遥县| 阿荣旗| 平湖市| 景宁| 建阳市| 辛集市| 荔波县| 莲花县| 林甸县| 合水县| 陆丰市| 鄂伦春自治旗| 三都| 防城港市| 绥化市| 彭山县| 即墨市| 扬中市| 平凉市| 青田县| 黄梅县| 张掖市| 天等县| 金寨县| 怀集县| 张北县| 叙永县| 通州区| 通化县| 年辖:市辖区| 恩施市| 积石山| 延安市| 阳信县|