Linux内存性能优化
倪朋飞
微软资深工程师,Kubernetes项目维护者
立即订阅
0 人已学习
课程目录
已完结 7 讲
01| 基础篇:Linux内存是怎么工作的?
02 | 基础篇:怎么理解内存中的Buffer和Cache?
03 | 案例篇:如何利用系统缓存优化程序的运行效率?
04 | 案例篇:内存泄漏了,我该如何定位和处理?
05 | 案例篇:为什么系统的Swap变高了(上)
06 | 案例篇:为什么系统的Swap变高了?(下)
07 | 套路篇:如何“快准狠”找到系统内存的问题?
Linux内存性能优化
登录|注册

03 | 案例篇:如何利用系统缓存优化程序的运行效率?

倪鹏飞 2019-11-06
你好,我是倪朋飞。
上一节,我们学习了内存性能中 Buffer 和 Cache 的概念。简单复习一下,Buffer 和 Cache 的设计目的,是为了提升系统的 I/O 性能。它们利用内存,充当起慢速磁盘与快速 CPU 之间的桥梁,可以加速 I/O 的访问速度。
Buffer 和 Cache 分别缓存的是对磁盘和文件系统的读写数据。
从写的角度来说,不仅可以优化磁盘和文件的写入,对应用程序也有好处,应用程序可以在数据真正落盘前,就返回去做其他工作。
从读的角度来说,不仅可以提高那些频繁访问数据的读取速度,也降低了频繁 I/O 对磁盘的压力。
既然 Buffer 和 Cache 对系统性能有很大影响,那我们在软件开发的过程中,能不能利用这一点,来优化 I/O 性能,提升应用程序的运行效率呢?
答案自然是肯定的。今天,我就用几个案例帮助你更好地理解缓存的作用,并学习如何充分利用这些缓存来提高程序效率。
为了方便你理解,Buffer 和 Cache 我仍然用英文表示,避免跟“缓存”一词混淆。而文中的“缓存”,通指数据在内存中的临时存储。

缓存命中率

在案例开始前,你应该习惯性地先问自己一个问题,你想要做成某件事情,结果应该怎么评估?比如说,我们想利用缓存来提升程序的运行效率,应该怎么评估这个效果呢?换句话说,有没有哪个指标可以衡量缓存使用的好坏呢?
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Linux内存性能优化》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(2)

  • EndLess
    老师,磁盘和文件系统有啥区别啊
    2019-11-20
    1
  • Hongyue
    “缓存"除了基于内存的用法还有基于什么的用法?
    2019-11-18
收起评论
2
返回
顶部