歡迎來到培訓(xùn)無憂網(wǎng)!

全國切換

咨詢熱線 400-001-5729

位置:培訓(xùn)無憂網(wǎng) > 新聞資訊 > 電腦/IT > python培訓(xùn) >  關(guān)于Python的垃圾回收有哪些需要學(xué)習(xí)的?

關(guān)于Python的垃圾回收有哪些需要學(xué)習(xí)的?

來源:培訓(xùn)無憂網(wǎng) 發(fā)布人:星星

2022-01-12 10:19:15|已瀏覽:200次

Python的垃圾回收

       很多人都知道Go語言有垃圾回收,但其實Python編程語言也有,垃圾回收簡稱‘GC機(jī)制’,當(dāng)內(nèi)存不再需要時,應(yīng)及時釋放,這種行為,被叫做“垃圾回收”,如果你還不了解,請看下文:

垃圾回收
      其實對于Python開發(fā)者來說,日常是不需要關(guān)注內(nèi)存管理和垃圾回收的,因為CPython的解釋器有獨(dú)有的機(jī)制進(jìn)行處理,為什么在Python語言中不太需要關(guān)注垃圾回收呢?
      因為Python自己的解釋器自動做了垃圾回收相應(yīng)的處理,在絕大部分場景下是不需要人為干涉的,另外,提到Python就會想到開發(fā)效率,因為Python是一門膠水語言,在很多場景下,高性能以及內(nèi)存問題并不凸顯,而且現(xiàn)在服務(wù)器資源便宜而人力資源很貴的情況下。
      在使用Python做Web開發(fā)時,盡管工作了很長時間,也很少會遇到內(nèi)存管理和垃圾回收的情況,Web應(yīng)用幾乎都是使用多進(jìn)程模型的,一則是會有定期超時重啟的機(jī)制,二是每次上線的操作也會進(jìn)程的重啟。所以不會有某個進(jìn)程長時間的駐留,使其占用很多內(nèi)存,導(dǎo)致內(nèi)存泄漏。所以,GC的缺陷基本不太會對Web開發(fā)產(chǎn)生很大的影響。
      且CPython也足夠完善,基本不太會出現(xiàn)內(nèi)存泄漏這樣的問題。大部分場景下,都是因為開發(fā)者錯誤的使用或者是誤判導(dǎo)致內(nèi)存占用不正常。
引用計數(shù)
      Python的垃圾回收是建立在引用計數(shù)上的,所以理解它也是非常重要的,引用計數(shù)的原理如下:當(dāng)一個對象的引用被創(chuàng)建或復(fù)制時,對象的引用計數(shù)加1;當(dāng)一個對象的引用被銷毀時,對象的引用計數(shù)減1;當(dāng)對象的引用計數(shù)減少至0時,也就意味著對象已經(jīng)沒有被使用了,可以將其所占用的內(nèi)存立即釋放。

      這種機(jī)制的特性是,有比較不錯的實用性,但也會有一個循環(huán)引用的問題,比如A引用了B,B又引用了A,導(dǎo)致每個對象的引用計數(shù)都不為0,那么A和B占用的內(nèi)存資源將永遠(yuǎn)不會被回收。所以就需要一些回收算法來解決這個問題,而Python就是使用了標(biāo)記清除和分代回收機(jī)制。

      本文由培訓(xùn)無憂網(wǎng)千鋒教育專屬課程顧問整理發(fā)布,更多Python開發(fā)培訓(xùn)課程歡迎關(guān)注培訓(xùn)無憂網(wǎng)Python開發(fā)頻道或添加老師微信:15033336050

      注:尊重原創(chuàng)文章,轉(zhuǎn)載請注明出處和鏈接 http://elsolbar.com/news-id-14761.html 違者必究!部分文章來源于網(wǎng)絡(luò)由培訓(xùn)無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實性請自行核實或聯(lián)系我們,了解更多相關(guān)資訊請關(guān)注python培訓(xùn)頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請試課。關(guān)注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規(guī)劃更適合你的專業(yè)課程!
  • 姓名:

  • 手機(jī):

  • 地區(qū):

  • 想學(xué)什么:

  • 培訓(xùn)無憂網(wǎng)
免 費(fèi) 申 請 試 聽
提交申請,《培訓(xùn)無憂網(wǎng)》課程顧問老師會一對一幫助你規(guī)劃更適合你的專業(yè)課程!