linux清理mmap缓存,原来 Mmap 这么简单,

原来 Mmap 这么简单,

0305451550-0.jpg-wh_651x-s_423491771.jpg

本文转载自微信公众号「Linux内核那些事」,作者songsong001 。转载本文请联系Linux内核那些事公众号。

一、传统的读写文件

一般来说,修改一个文件的内容需要如下3个步骤:

把文件内容读入到内存中。

修改内存中的内容。

把内存的数据写入到文件中。

过程如图 1 所示:

030545K56-1.jpg-wh_600x-s_159410325.jpg

如果使用代码来实现上面的过程,代码如下:

read(fd, buf, 1024);  // 读取文件的内容到buf

...                   // 修改buf的内容

write(fd, buf, 1024); // 把buf的内容写入到文件

从图 1 中可以看出,页缓存(page cache) 是读写文件时的中间层,内核使用 页缓存 与文件的数据块关联起来。所以应用程序读写文件时,实际操作的是 页缓存。

二、使用 mmap 读写文件

从传统读写文件的过程中,我们可以发现有个地方可以优化:如果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值