內存管理的粗淺認識

 

1. 全局變量,靜態變量,char*分配的內存從靜態存儲區域獲得。

2. 局部變量所需的內存是從棧上分配,不同系統的內存管理器會分配不同的大小,有些爲2M,有些是4M,還有其他的。雖然分配的空間比較小,但棧內存分配運算內置於處理器的指令集中,效率很高。出了局部函數後自動釋放,較安全。

3. new/malloc申請的內存從堆上分配,最大爲2G,大小及生存期可自由指定,較靈活。

    new流程:

     3.1,分配內存

     3.2,在內存的位置上調用構造函數

     3.3,將內存的地址賦給指針對象

   delete流程:

     3.1.對對象調用析構函數

     3.2.釋放該對象所使用的內存

 

4. 32位的機器支持的最大物理內存容量爲4G。當實際物理內存不夠的時候,會從磁盤中分配虛擬內存,使用中間層,利用虛表,建立磁盤與虛表的映射。當物理內存有空閒時,通過虛表對應的磁盤的物理地址,把該地址的內容讀取存儲到物理內存中。

5. 當用new申請200byte時,實際消耗掉的要>200byte。

6. 在結構體中,位置對齊也會浪費掉一些內存。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章