日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python的内存管理机制及调优手段_Python的内存管理机制及调优手段

發布時間:2023/12/3 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的内存管理机制及调优手段_Python的内存管理机制及调优手段 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

內存管理機制:引用計數、垃圾回收、內存池

引用計數:

引用計數是一種非常高效的內存管理手段,當一個Python對象引用時其引用計數加一,當其不再被一個變量引用時則減一。當引用計數等于0時對象被刪除。

1.引用計數:

引用計數也是一種垃圾收集機制,而且也是一種最直觀,最簡單的垃圾收集技術。當 Python 的某個對象的引用計數降為 0 時,說明沒有任何引用指向該對象,該對象就成為要被回收的垃圾了。比如某個新建對象,它被分配給某個引用,對象的引用計數變為 1。如果引用被刪除,對象的引用計數為 0,那么該對象就可以被垃圾回收。不過如果出現循環引用的話,引用計數機制就不再起有效的作用了。

2.標記清除:

如果兩個對象的引用計數都為1,但是僅僅存在他們之間的循環引用,那么這兩個對象都是需要被回收的。也就是說,他們的引用計數雖然表現為非0,但是實際上有效的引用計數為0.所以現將循環引用摘掉,就會得出這兩個對象的有效計數。

3、分代收集

經過上面的【標記-清理】方法,已經可以保證對垃圾的回收了,但還有一個問題,【標記-清理】什么時候執行比較好呢,是對所有對象都同時執行嗎?

同時執行很顯然不合理,我們知道,存活越久的對象,說明他的引用更持久(好像是個屁話,引用不持久就被刪除了),為了更合理的進行【標記-刪除】,就需要對對象進行分代處理,思路很簡單:

1、新創建的對象做為0代

2、每執行一個【標記-刪除】,存活的對象代數就+1

3、代數越高的對象(存活越持久的對象),進行【標記-刪除】的時間間隔就越長。這個間隔,江湖人稱閥值

4.調優手段(了解)

1.手動垃圾回收

2.調高垃圾回收閾值

3.避免循環引用(手動解循環引用和使用弱引用)

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的python的内存管理机制及调优手段_Python的内存管理机制及调优手段的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。