014 Python變量的內存管理

Python變量內存管理

1.變量存在哪裏

1.若是咱們定義了一個變量,而咱們沒有用python解釋器取運行的時候,這個變量其實就是很普通的幾個字符而已。而當咱們用Python解釋器取運行它的時候,那字符進入了內存,纔會有變量這個概念。也就是說變量是存放在內存當中的。
2.可是說變量只是存在內存中並無很具體,實際上在每定義一個變量就會在這個內存的大空間中開闢一個小空間

2.引用計數

1.引用計數是針對變量值的
2.好比定義一個變量
  height = 180
  x = height # x是在引用height,180的引用計數加1
  這個時候引用計數是爲2,
  del x  釋放的是引用計數,這時候180的引用計數爲1
  del height 這個時候180的引用計數爲0

3.垃圾回收機制

1.當咱們定義一個有效的變量時,這時候會在內存中自動分配一個小的存儲空間給咱們定義的變量的值,可是當咱們讓變量名接收一個其它的值的時候,那咱們一開始所定義的那個變量的值就沒有了變量名來接收,此時這個變量值就會看作成是垃圾,python就會處理這個垃圾,釋放10的內存佔用,這就是python的垃圾回收機制
2.也就是說,當變量值的引用計數爲0的時候,觸發了垃圾回收制,釋放一開始給他開闢的內存空間

4.小整數池

1.爲了不因建立相同的值而重複申請內存空間所帶來的效率問題, Python解釋器會在啓動時建立出小整數池,範圍是[-5,256],該範圍內的小整數對象是全局解釋器範圍內被重複使用,永遠不會被垃圾回收機制回收。
2.在pycharm中運行python程序時,pycharm出於對性能的考慮,會擴大小整數池的範圍,其餘的字符串等不可變類型也都包含在內一便採用相同的方式處理了,咱們只須要記住這是一種優化機制,至於範圍到底多大,無需細究。
相關文章
相關標籤/搜索