python**在執行是,python直譯器會向作業系統申請執行記憶體,將**載入到記憶體中執行,如圖所示:
python 直譯器為了利用好有限的記憶體空間,將記憶體進行了如圖的劃分:
不可變型別:資料在記憶體中一旦建立,就不能修改了。
python 為了優化程式執行速度,將字串、整數定義成了不可變型別,一旦宣告出來,資料就不能修改了。
字串操作
字串是記憶體中使用特別的多的資料,所以 python對字串進行了優化,字串是不可變資料型別,所以不能直接修改字串內部的資料。
當我們通過變數修改資料時,記憶體中將變數指向了乙個新的記憶體位址。原來的字串資料依然存在,並沒有修改。
整數操作
整數和字串一樣,在程式中也是乙個經常操作的資料。所以也對整數進行了優化,python 直譯器在載入的時候,將 -5~256 的整數直接在記憶體中建立好了開發人員要使用的時候直接使用即可,不需要建立物件。
整數也是不可變資料,如果需要修改變數中的整數資料時,就是將變數指向了乙個新的記憶體位址,原來在記憶體中的資料不會收到影響。
軟體是在計算機上執行,安裝在計算機硬碟中的,計算機的基本組成如下圖:
軟體在計算機中執行時,是執行在系統的記憶體中的,平時使用電腦的時候開啟軟體較多的話,電腦會卡頓(記憶體空間不足!)
程式語言編寫的**,就是在編寫軟體,所以**的執行就是執行在記憶體中的。
python 記憶體分析 python 記憶體分析
1 改原始碼重新編譯列印相關資訊 obmalloc.c 檔案中列印 maxarenas,值為當前環境分配 arena 個數 分配 arena 時並沒有馬上分配對應的pools,故對於每乙個 arena,nfreepools 和 ntotalpools 為分配pool的可用pool數和總pool數。i...
python 記憶體分析 python記憶體管理分析
記憶體管理,對於python這樣的動態語言,是至關重要的一部分,它在很大程度上甚至決定了python的執行效率,因為在python的執行中,會建立和銷毀大量的物件,這些都涉及到記憶體的管理。小塊空間的記憶體池 在python中,許多時候申請的記憶體都是小塊的記憶體,這些小塊記憶體在申請後,很快又會被...
python記憶體分析
python記憶體分析 記憶體分析必須了解的兩點 1.python中不可變型別佔固定的位置,其值不可以改變,基本資料型別和元組為不可變資料型別,基本資料型別 數字 int float complex 字串str 布林值bool 元組tuple.2.python中採用引用計數,所有的變數都是引用,指向...