C 知識樹整理 記憶體探索

2022-06-10 01:54:11 字數 672 閱讀 4389

[x] c#的記憶體分配探索

繼續探索,如果想要繼續往下的話就得去深挖看看gchandle.alloc的分配

[x] gc

clr的垃圾**實現

generational 分代演算法

finalization queue(析構佇列)和freachable queue(可達佇列)

託管資源:

非託管資源:

.net的gc機制有這樣兩個問題:

gc注意事項:

[x] 堆和棧

堆區(託管堆):用於存放引用型別物件本身。在c#中由.net平台的垃圾**機制(gc)管理。棧,堆都屬於動態儲存區,可以實現動態分配。

靜態區及常量區:用於存放靜態類,靜態成員(靜態變數,靜態方法),常量的物件本身。由於存在棧內的引用位址都在程式執行開始最先入棧,因此靜態區和常量區內的物件的生命週期會持續到程式執行結束時,屆時靜態區內和常量區內物件才會被釋放和**(編譯器自動釋放)。所以應限制使用靜態類,靜態成員(靜態變數,靜態方法),常量,否則程式負荷高.

**區:存放函式體內的二進位制**。

C 知識樹整理 C 物件導向基礎

x 三劍客 類中有指標的時候必須複寫這三個函式否則會造成記憶體洩漏 拷貝賦值函式 析構函式 x 深複製和淺複製 x 智慧型指標 原理 應用 x c 中的explicit x 函式的傳值和傳址 x 虛函式和虛表 x const的作用 x new和delete的使用,和malloc,free的區別 de...

C 物件記憶體模型探索

實驗環境 ubuntu 18.04 64 bit gcc 7.3.0 g 7.3.0,編譯使用 m32選項啟用32位環境 實驗步驟 1 不含有虛函式的基類,如下 include class base private int i int main 執行結果 kevin kvm study temp g...

Python記憶體管理知識整理

當建立物件時,python 立即向作業系統請求記憶體 可以用id 變數名 來獲取該變數所引用物件的記憶體位址 a 1 print id a 56780120is關鍵字用於判斷引用是否相同,用於判斷引用的內容是否相同 a b a b true id a 44204920l id b 45830760l...