天天看點

關于堆及記憶體配置設定點滴

關于堆及記憶體配置設定點滴

1. 無論是堆,還是棧都是對虛存的操作和管理。

2. 系統調用brk()和mmap()用來動态配置設定虛存空間,也就是表明這些虛存位址是合法的,通路的時候,系統應為其配置設定實體記憶體,而不是報錯。

3. 堆的本質是動态申請的虛存空間。理論上可以用任何方式去管理這塊空間。但資料結構--"堆"是最常用的一種,是以這塊配置設定的空間常稱為被堆。

4. 和棧不一樣,堆的管理是在使用者函數庫中進行,malloc/free等函數是堆的入口。

5. 每次配置設定的記憶體塊大小都會被記錄下來,釋放的時候隻需要指定要釋放的記憶體位址就行了。這就是為什麼malloc的時候要指定大小,free的時候不用。

6. 堆和棧一樣,仍然使用了實體記憶體的延遲配置設定政策。

原文

http://www.cnblogs.com/moodlxs/articles/2346826.html

繼續閱讀