form: none; text-indent: 0px; letter-spacing: normal; font-family: "Microsoft YaHei", Helvetica, Arial, "Lucida Grande", Tahoma, sans-serif; font-size: 15px; font-style: normal; font-weight: 400; word-spacing: 0px; vertical-align: baseline; white-space: normal; -ms-word-break: break-all; -ms-word-wrap: break-word; box-sizing: inherit; orphans: 2; widows: 2; background-color: rgb(255, 255, 255); font-variant-ligatures: normal; font-variant-caps: normal; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;">Linux下频繁存取文件时,物理内存可能会被耗尽,当程序结束后,内存不会释放,而是一直作为cache。
Linux缓存有dentry,buffer cache,page cache。Dentry用来加速文件路径名到inode的转换;buffer cache加速磁盘块的读写;page cache加速inode的读写。缩短IO调用时间。
1.释放page cahce# echo 1 > /proc/sys/vm/drop_cache
2.释放dentry和inode# echo 2 > /proc/sys/vm/drop_cache
3.释放page cache,dentry,inode# echo 3 > /proc/sys/vm/drop_cache
在释放内存前,最好先允许sync,强制将系统正在处理的page cahce,dentry,inode写入磁盘。