有時候我們在看文檔的過程中, 會遇到 匿名內(nèi)存 這個詞
要理解匿名內(nèi)存,就必須了解計算機的內(nèi)存,計算機中的內(nèi)存,分為2種
- 內(nèi)存映射文件
- 匿名內(nèi)存
我們知道,文件是操作系統(tǒng)抽象出來的,操作系統(tǒng)把設(shè)備或者io都抽象為文件.
比如我們的鍵盤,鼠標(biāo),還有打印機之類的,在操作系統(tǒng)層面都屬于文件,當(dāng)然我們的文檔,應(yīng)用程序,也屬于文件.
操作系統(tǒng)要執(zhí)行一個程序,或者說打開一個文檔,都是要把二進制數(shù)據(jù)從磁盤或者其他IO設(shè)備,讀取到內(nèi)存,然后進行處理.那么,這里使用的內(nèi)存,就是內(nèi)存映射文件.
匿名內(nèi)存也很好理解,我們寫程序時,肯定了解 堆和棧, 操作系統(tǒng)為了減少內(nèi)存碎片,采用了分段和分頁的機制.了解過匯編的應(yīng)該知道一個程序,包括stack segment,data segment,code segment.實際上堆和棧都是屬于匿名內(nèi)存,寫c的時候,我們會malloc一段內(nèi)存,那這塊內(nèi)存就是匿名內(nèi)存,包括c++或者java中的new 出來的指針(java中的引用)都是在匿名內(nèi)存中.還有執(zhí)行函數(shù)調(diào)用時,局部變量等等存儲在棧幀中的數(shù)據(jù)也是在匿名內(nèi)存中.
以上就是我對匿名內(nèi)存的理解