缓存的理解
2016-08-14 00:04
211 查看
CPU体系结构中有L1,L2,L3缓存
L1是CPU相关的,L2,L3则是所有CPU共享的
L1分指令和数据的Cache,Cache line是缓存的最小单位
想象CPU在执行指令的时候,引用的大部分的数据都是L1,L2,L3中,只有部分是使用内存中的数据
由于CPU在执行指令的时候,前有预加载的机制,后有局部性原理,CPU需要的访问的数据也有一定的连续性
在应用开发的时候,尽量减少上下文切换,也就是Cache Miss的问题,可以极大地提高应用程序的性能
可以想象这里存在一个L1,L2,L3与内存数据同步的问题,类似内存与磁盘的同步
这个时候Cache与内存就存在映射关系了,书上提到的:全关联,多路关联,直接映射3种i
Cache关联的含义是指Cache line可以访问的内存的范围,例如:
全关联是指Cache可以映射到任意物理内存
多路关联指Cache只能映射到部分有序的物理内存
使用缓存的目的仅仅是因为有热点吗?
其实不一定
缓存为了降低延时,提高访问速度
缓存为了缓存热点数据
缓存为了降低并发对后端的击穿压力
L1是CPU相关的,L2,L3则是所有CPU共享的
L1分指令和数据的Cache,Cache line是缓存的最小单位
想象CPU在执行指令的时候,引用的大部分的数据都是L1,L2,L3中,只有部分是使用内存中的数据
由于CPU在执行指令的时候,前有预加载的机制,后有局部性原理,CPU需要的访问的数据也有一定的连续性
在应用开发的时候,尽量减少上下文切换,也就是Cache Miss的问题,可以极大地提高应用程序的性能
可以想象这里存在一个L1,L2,L3与内存数据同步的问题,类似内存与磁盘的同步
这个时候Cache与内存就存在映射关系了,书上提到的:全关联,多路关联,直接映射3种i
Cache关联的含义是指Cache line可以访问的内存的范围,例如:
全关联是指Cache可以映射到任意物理内存
多路关联指Cache只能映射到部分有序的物理内存
使用缓存的目的仅仅是因为有热点吗?
其实不一定
缓存为了降低延时,提高访问速度
缓存为了缓存热点数据
缓存为了降低并发对后端的击穿压力
相关文章推荐
- 基于PHP输出缓存(output_buffering)的深入理解
- 简单理解缓存机制
- 计算机底层知识拾遗(六)理解页缓存page cache和地址空间address_space
- 《深入理解mybatis原理(六)》 MyBatis缓存机制的设计与实现如何细粒度地控制你的MyBatis二级缓存
- ASP.NET2.0缓存(Cache)技术深入理解
- 【WP开发】正确理解页面缓存
- Hibernate 二级缓存初步理解
- 基于JVM原理、JMM模型和CPU缓存模型深入理解Java并发编程
- 深入理解PHP高级技巧、面向对象与核心技术之调整浏览器缓存
- 对JFinal与Spring中的缓存理解
- 个人对一级缓存,二级缓存的初步理解
- hibernate一级与二级缓存的理解
- 五分钟理解什么是浏览器缓存?
- 缓存-理解浏览器缓存
- 关于一级缓存和二级缓存的理解
- Android开发笔记——以Volley图片加载、缓存、请求及展示为例理解Volley架构设计
- Hibernate3一级缓存和二级缓存的理解!
- memcache缓存命中深入理解转载
- 深入理解java 整型数, Integer的缓存
- 深入理解缓存cache