关于内存的一些基础知识
1、free:Display amount of free and used memory in the system.
free顯示的數值來自/proc/meminfo(默認單位是KB)。各個項的含義分別是:
1)Mem這一行,shared:已廢棄;buffers:Buffer Cache內存;cached:Page Cache內存。
2)-/+ buffers/cache這一行:
used=(Mem一行的)used - buffers - cached。此為應用程序使用內存數。
free=(Mem一行的)free + buffers + cached。此為應用程序可用內存數。
這里區分Mem行和-/+ buffers/cache行的free列,是因為linux內核會將空閑內存用到buffers/cached以提高數據訪問性能,當應用程序需要內存時,buffers/cached的內存是可以被利用的,在這種意義上,應用程序的可用內存是(Mem:)free + buffers + cached。used列也是同樣的道理。
3)Swap(交換分區),即虛擬內存。
?
2、虛擬內存。使用虛擬內存的幾個目的:
1)進程間隔離。進程以虛擬地址的形式訪問自己的內存空間及其數據。除非是共享內存,否則各個進程互不干涉。
2)硬件抽象。內核能夠改變一個虛擬地址映射到的物理地址。另外,在物理內存緊張時,內核會把長時間不用的內存空間的數據swap到磁盤。
3)
?
?
?
?
參考鏈接:
https://techtalk.intersec.com/2013/07/memory-part-1-memory-types/
?
?
待了解:linux內核2.6.14及以上版本支持的/proc/進程ID/smaps文件、/proc/sys/vm/drop_caches、Private內存、Virtual內存、Share內存等。
?
?
不斷學習中。。。
轉載于:https://www.cnblogs.com/hanerfan/p/4165834.html
總結
以上是生活随笔為你收集整理的关于内存的一些基础知识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: booth算法实现乘法器
- 下一篇: ASP .NET MVC 之Entity