在Linux的free命令输出中, 有一个buffer 和 cache 字段. 如下图:1
2
3 total used free shared buff/cache available
Mem: 1009028 318676 114392 21640 575960 488928
Swap: 0 0 0
它们代表什么意思呢?
查资料后发现:
- buffer 是某一个程序临时存数据的地方, 并且这些数据不能被别的程序使用. 举个带宽的例子:当你要立即发送大量数据的时候,但是网卡发送能力较低. 它会将这些数据保存在buffer里, 然后慢慢发送这些数据.
- cache 是为了快速访问而将频繁用到的数据临时保存在内存里
另一个不同是cache将会多次使用, 而buffer只会使用一次.
但是他们都是为了处理数据而临时存储.