python 駐留機制

2022-07-01 23:21:13 字數 1131 閱讀 4584

1. 簡介

申明乙個記憶體空間,後續申明相同的值,不會再開闢一塊新的記憶體空間,指向已有的記憶體空間
2.適用型別
1. str

2. int

3. bool

3.實現原理
1. 系統維護乙個記錄駐留物件的字典

2. 當某個物件需要駐留,檢視在字典中是否存在,若存在就指向已存在的記憶體空間;

3. 新駐留物件不存在於該字典中,開闢記憶體空間,記錄該物件

4.駐留時機
1. 所有長度為 0 和長度為 1 的字串都被駐留

2. 字串只在編譯時進行駐留,而非執行時

3. 字串中只包含字母,數字或下劃線時將會駐留

4. 字串長度不超過20位

5.測試

# str

one = 'ffffffffffffffffffff'

two = 'ffffffffffffffffffff'

print(id(one), id(two)) # 42768184 42768184

# int

three = 34567

four = 34567

print(id(three), id(four)) # 4697808 4697808

# bool

five = true

six = true

print(id(five), id(six)) # 497676512 497676512

# 超過20位

vv = "s" * 30

bb = "s" * 30

print(id(vv), id(bb)) # 35820848 35821088

# 自己手動駐留

import sys

vv = sys.intern("s" * 30 + "666")

bb = sys.intern("s" * 30 + "666")

print(id(vv), id(bb)) # 38382824 38382824

5.優劣勢
優勢:減小記憶體開銷,省略申請記憶體空間的過程,提高執行效率

劣勢:建立駐留物件需要花費額外的開銷

string 駐留機制

string s1 abc string s2 ab string s3 s2 c string s4 abc string s5 abcd 求兩個object的引用是否相等 console.writeline object.referenceequals s1,s3 false console.w...

python 字串的駐留機制及優缺點

字串駐留是一種僅儲存乙份相同且不可變字串的方法。同的值被存放在字串駐留池中,發生駐留之後,許多變數可能指向記憶體中的相同字串物件,從而節省記憶體。1.所有長度為 0 和長度為 1 的字串都被駐留 2.字串只在編譯時進行駐留,而非執行時 a hi a變數被駐留 b join h i 變數不會被駐留 p...

小整數池以及字串駐留機制

在 5,256 這個區間的整數,在記憶體中僅僅會存放乙份。舉例說明 在python中,兩次重複宣告乙個內容一樣的變數的時候,其id 是不一樣的 但是如果在宣告整數的時候,數字是在 5,256 這個區間的整數,其在記憶體中就僅僅存放了乙份,所以id 是一樣的 但是僅僅限於整數,如果是小數則不會觸發 前...