<track id="ttlv7"></track>

<pre id="ttlv7"></pre>

      <dl id="ttlv7"></dl>

        <track id="ttlv7"></track>
        <del id="ttlv7"></del>
          <mark id="ttlv7"><ruby id="ttlv7"></ruby></mark>

              <b id="ttlv7"><span id="ttlv7"></span></b>

                <big id="ttlv7"><th id="ttlv7"><dfn id="ttlv7"></dfn></th></big>

                教育行業A股IPO第一股(股票代碼 003032)

                全國咨詢/投訴熱線:400-618-4000

                Python如何進行內存管理?

                更新時間:2021年03月05日18時12分 來源:傳智教育 瀏覽次數:



                Python中主要通過引用計數和內存池機制進行內存管理。

                一、引用計數機制

                Python內部使用引用計數(記錄對象有多少個引用)來保持追蹤內存中的對象,當對象被創建時,該對象的引用計數加1;當對象被銷毀時,該對象的引用計數變為0,它會被當做垃圾進行回收。

                1. 引用計數增加的情況
                  (1)對象被創建,如x=4。
                  (2)賦值給其它變量,如y=x。
                  (3)被作為參數傳遞給函數,如foo(x)。
                  (4)作為容器對象的一個元素,如a=[1,x,'33']。

                2. 引用計數減少的情況
                  (1)對象的引用離開它的作用域,比如, foo(x)函數執行結束時,x引用的對象引用計數減1。
                  (2)對象的引用被顯式地銷毀,如del x或del y。
                  (3)對象的別名被賦值給其他對象,x=789。
                  (4)對象從窗口對象中被移除,a.remove(x)。

                3. 垃圾回收
                  (1)垃圾收集器會回收引用計數為0的對象,并清除這些對象占用的內存空間。
                  (2)當兩個對象相互引用時,若它們沒有被其它引用所持有,則會被垃圾收集器回收。
                  (3)垃圾回收機制還有一個循環垃圾回收器,它可以確保釋放循環引用對象(a引用b, b引用a)。

                二、內存池機制

                在Python中,很多時候申請的內存都是小塊內存,這些小塊內存在申請不久后又會被釋放,這就意味著程序在運行期間會大量地執行申請和釋放操作,影響Python的執行效率。為了加快Python的執行效率,Python引入了一個內存池機制,用于管理對小塊內存的申請和釋放。

                Python中所有小于256個字節的對象都使用內存池的分配器。另外,一些Python對象,如整數、浮點數或列表,都擁有獨立的內存池,對象之間不會共享這些獨立的內存池。也就是說,若分配又釋放了大量的整數,用于緩存這些整數的內存池將不再分配給浮點數。



                猜你喜歡:

                Python常見的數據類型有哪些?

                什么是進程?Python進程各部分內容介紹

                傳智教育python+數據分析課程

                久久婷婷五月综合色啪,好好热精品视频6,天天玩,天天鲁,天天曰,,超频99免费观看视频,一道精品视频一区二区三区,成av人电影在线观看,欧美成 人 在线播放