python 字符串的駐留機制及優缺點
說明
字符串駐留是一種僅保存一份相同且不可變字符串的方法。不同的值被存放在字符串駐留池中,發生駐留之后, 許多變量可能指向內存中的相同字符串對象, 從而節省內存.
原理
系統維護interned字典,記錄已被駐留的字符串對象 當字符串對象a需要駐留時,先在interned檢測是否存在,若存在則指向存在的字符串對象,a的引用計數減1 若不存在,則記錄a到interned中駐留時機
所有長度為 0 和長度為 1 的字符串都被駐留 字符串只在編譯時進行駐留,而非運行時a = ’hi’ # a變量被駐留b = ’’.join([’h’, ’i’]) # 變量不會被駐留print(a is b) # False
3.字符串中只包含字母,數字或下劃線時將會駐留
a = ’hello’b = ’hello’print(a is b) # Truea = ’hello!’b = ’hello!’print(a is b) # False```
常量折疊是 Python 中的一種 窺孔優化技術. 這意味著在編譯時表達式 ‘a’*20 會被替換為 ‘aaaaaaaaaaaaaaaaaaaa’ 以減少運行時的時鐘周期. 只有長度小于 20 的字符串才會發生常量折疊.樣的設計目的是為了保護.pcy文件不會被錯誤代碼搞的過大
a = ’a’ * 10b = ’aaaaaaaaaa’print(a is b) # Truea = ’a’ * 21b = ’aaaaaaaaaaaaaaaaaaaaa’print(a is b) #False
字符串駐留機制的優缺點
優點:能夠提高一些字符串處理任務在時間和空間上的性能,非駐留比較效率為o(n),駐留時比較效率為o(1)缺點:在創建或駐留字符串時的會花費更多的時間
總結
到此這篇關于python 字符串的駐留機制的文章就介紹到這了,更多相關python字符串駐留內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
1. React+umi+typeScript創建項目的過程2. ASP中常用的22個FSO文件操作函數整理3. ASP.NET Core 5.0中的Host.CreateDefaultBuilder執行過程解析4. SharePoint Server 2019新特性介紹5. .Net core 的熱插拔機制的深入探索及卸載問題求救指南6. 解決ASP中http狀態跳轉返回錯誤頁的問題7. 讀大數據量的XML文件的讀取問題8. 三個不常見的 HTML5 實用新特性簡介9. 無線標記語言(WML)基礎之WMLScript 基礎第1/2頁10. ASP調用WebService轉化成JSON數據,附json.min.asp