课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
缓存就是数据交换的缓冲区(称作Cache),当某一设备要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。
APP 中显示的数据除了从服务器获取,还有一个数据来源就是本地数据库(缓存),它给我们的设计增加了很多丰富性。
缓存工作原理
缓存的工作原理是当CPU要读取一个数据时,首先从 CPU 缓存中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。正是这样的读取机制使CPU读取缓存的命中率非常高,也就是说 CPU下 一次要读取的数据90%都在 CPU 缓存中,只有大约10%需要从内存读取。这大大节省了CPU 直接读取内存的时间,也使 CPU 读取数据时基本无需等待。总的来说,CPU 读取数据的顺序是先缓存后内存。
RAM 和 ROM 相对的,RAM 是掉电以后,其中的信息就消失那一种,ROM 在掉电以后信息也不会消失那一种。RAM 又分两种,一种是静态RAM,SRAM;一种是动态 RAM,DRAM。前者的存储速率要比后者快得多,使用的内存一般都是动态 RAM。为了增加系统的速率,把缓存扩大就行了,扩的越大,缓存的数据越多,系统就越快了,缓存通常都是静态RAM,速率是非常的快, 但是静态 RAM 集成度低, 价格高,由此可见,扩大静态 RAM 作为缓存是一个非常愚蠢的行为,但是为了提高系统的性能和速率,必须要扩大缓存, 这样就有了一个折中的方法,不扩大原来的静态RAM缓存,而是增加一些高速动态 RAM 做为缓存, 这些高速动态 RAM 速率要比常规动态 RAM 快,但比原来的静态 RAM 缓存慢, 把原来的静态 RAM 缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。
缓存存在的意义
缓存工作的原则,就是“引用的局部性”,这可以分为时间局部性和空间局部性。空间局部性是指 CPU 在某一时刻需要某个数据,那么很可能下一步就需要其附近的数据;时间局部性是指当某个数据被访问过一次之后,过不了多久时间就会被再一次访问。对于应用程序而言,不管是指令流还是数据流都会出现引用的局部性现象。
从程序代码上来考虑,设计者通常也会尽量避免出现程序的跳跃和分支,让 CPU 可以不中断地处理大块连续数据。游戏、模拟和多媒体处理程序通常都是这方面的代表,以小段代码连续处理大块数据。不过在办公运用程序中,情况就不一样了。改动字体,改变格式,保存文档,都需要程序代码不同部分起作用,而用到的指令通常都不会在一个连续的区域中。于是 CPU 就不得不在内存中不断跳来跳去寻找需要的代码。这也就意味着对于办公程序而言,需要较大的缓存来读入大多数经常使用的代码,把它们放在一个连续的区域中。如果缓存不够,就需要缓存中的数据,而如果缓存足够大的话,所有的代码都可以放入,也就可以获得最高的效率。同理,高端的数据应用以及游戏应用则需要更高容量的缓存。