闲话Cache:始篇

Caching(缓存)在现代的计算机系统中是一项最古老最基本的技术。它存在于计算机各种硬件和软件系统中,比如各种CPU, 存储系统(IBM ESS, EMC Symmetrix…),数据库,Web服务器,中间件等。它的一个重要的作用就是用于弥补不同速度的硬件之间的存取速度的差距,cache可以完全通过硬件实现(算法也是通过硬件实现的),也可以通过在更快硬件上通过软件控制来实现。

EMC Symmetrix之所以如此的昂贵,就是因为在这个系统中,提供了一个640G全相连的高速数据缓存(DRAM缓存),完全用硬件实现,就像一个放大版的CPU一级缓存。

Caching技术对于现代计算机系统之所以如此重要,就是在于,任何一个小的改进都会对整个计算机系统产生巨大的影响。因为cache具备一个特性,用最高的性价比可以实现我们希望得到的系统整体性能。

比如,磁盘和内存相比,磁盘具有大容量的特性,而内存具有高性能,但是对于同等容量,磁盘相比于内存来说非常廉价。这也就是我们不可能把所有磁盘都替换成内存(先不考虑永久存储的特性),即便这样我们可以获得非常高的I/O速度。那么如何解决这两者之间的不匹配?就是利用缓存技术。利用内存介质为磁盘做一层缓存。这样就可以在不多花额外费用的同时,得到速度和容量的平衡。

同样的道理存在于内存和CPU缓存之间。下图是Intel Core i7 5500系列各部件的访问速度:


访问速度


L1 Cache Hit


4 cycles


L2 Cache hit


10 cycles


L3 Cache hit, line unshared


40 cycles


L3 Cache hit, shared line in another core


65 cycles


L3 Cache hit, modified in another core


75 cycles


Remote L3 cache


100~300 cycles


Local RAM


60 ns


Remote RAM


100 ns

从这里我们可以看到缓存对于系统性能的重要性。但是我们要达到理想的性能,还必须提高缓存的命中率,这样缓存才可以最大限度的得到利用。

接下来,我们将会详细地描述缓存算法。并且通过对比,来看看各种算法的优劣。

闲话Cache:始篇,布布扣,bubuko.com

时间: 2024-12-09 18:32:56

闲话Cache:始篇的相关文章

奇妙的go语言(開始篇)

[ 声明:版权全部.欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 从前接触脚本语言不多,可是自从遇到go之后,就開始慢慢喜欢上了这个脚本语言.go语言是google设计,主要用来从事web.server側程序的开发,学习起点低. 一般熟练掌握C.python的朋友花上几个小时就能够学会go语言. a) 安装环境 鉴于个人主要使用linux进行工作,所以这里介绍的都是linux下的安装方式. centos: sudo yum install golang u

(翻译)Google Guava Cache

翻译自Google Guava Cache This Post is a continuation of my series on Google Guava, this time covering Guava Cache. Guava Cache offers more flexibility and power than either a HashMap or ConcurrentHashMap, but is not as heavy as using EHCache or Memcache

【翻译】Integer Cache In Java(在Java中的Integer缓存机制)

返回主页 回到顶端 This Java article is to introduce and discuss about Integer Cache. 这篇Java文章将介绍和讨论整数缓存. This is a feature introduced in Java 5 to save memory and improve the performance. 这是Java 5中引入的一个特性,用于节省内存和提高性能. Let us first have a look at a sample cod

21. Spring Boot过滤器、监听器【从零开始学Spring Boot】

转载:http://blog.csdn.net/linxingliang/article/details/52069490 上一篇文章已经对定义Servlet 的方法进行了说明,过滤器(Filter)和 监听器(Listener)的注册方法和 Servlet 一样,不清楚的可以查看下上一篇文章(20): 本文将直接使用@WebFilter和@WebListener的方式,完成一个Filter 和一个 Listener:使用注解 @ServletComponentScan//这个就是扫描相应的Se

诗经 全文

诗经 全文 (带注释和译文) http://www.edu009.com/Article/HTML/Article_60756.html <诗经> 春秋·孔丘 <诗经>是我国第一部诗歌总集,先秦时代称为“诗”或“诗三百”,孔子加以了整理.汉武帝采纳董仲舒“罢黜百家,独尊儒术”的建议,尊“诗”为经典,定名为<诗经>. <诗经>现存诗歌 305 篇,包括西周初年到春秋中叶共 500 余年的民歌和朝庙乐章,分为风.雅.颂三章. “风”包括周南.召南.邶.鄘.卫.王

易经&#183;阴阳与术数 --金庸

我国学术界多数意见,认为<易经>成于殷末周初,成立的时候极早,本来的作用是卜占吉凶,作为行为的指导.古人迷信,对于自然界.命运.战争的结果.婚姻.建屋等等大事都不了解,惴惴不安,便占卦来作决定.<易经>的基本道理,是古代哲人根据观察事理和人生经验而得出来的教训,教导人们:万事变动不居,不会固定不易,物极必反,做事不可趋于极端.即使以现代的哲学来看,那也是极有道理的.一般认为,<周易>应当在西周初年即已成型.向来说是周文王所作,这未必为事实,但周文王根据传统资料,加以整理

&lt;h2&gt;1. mongodb介绍&lt;/h2&gt;

1. mongodb介绍 2. ppt下载地址 http://download.csdn.net/detail/u014285882/7807105 阅读全文 本文已收录于下面专栏: mongodb使用 MongoDB Days 2015 深圳 PPT 共享(干货)! [议程] [讲师团] 大量干货来袭,MongoDB Days 2015 深圳的PPT已经上传到社区. 废话不多说,请看: MongoDB 大陆地区销售总监 肖杨波:?... kk185800961 2015年11月25日 22:4

最全spring boot视频系列,你值得拥有

================================== 从零开始学Spring Boot视频 ================================== àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share [截止到201

缓存篇(Cache)~大话开篇

闲话杂淡 想写这篇文章很久了,但总是感觉内功还不太够,总觉得,要写这种编程领域里的心法(内功)的文章,需要有足够的实践,需要对具体领域非常了解,才能写出来.如今,感觉自己有写这种文章的能力了,所以,快马加鞭,把这个内功写出来,分享给大家,分享我的Fans! 缓存:缓存的领域很广泛,实现方法也很多,你可以使用文件,内存来实现缓存,而缓存的方法也有很多,对于一个网页来说,你可以缓存它的页面内容(HTML),或者缓存它的数据集(DataSet),这两种方式适用于不同的场合,对于需要主动触发的缓存,它可