java一级缓存二级缓存_一级缓存和二级缓存的理解
首先补充下CPU的知识:
CPU也就是中央处理器,相当于计算机的大脑;
CPU是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit);
CPU功能主要是解释计算机指令以及处理计算机软件中的数据;
中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus);
CPU与内部存储器(Memory)和输入/输出(I/O)设备合称为电子计算机三大核心部件。
什么是缓存和内存:
什么是内存?
内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。 内存是由内存芯片、电路板、金手指等部分组成的。
什么是缓存?
缓存是CPU的一部分,它存在于CPU中,CPU存取数据的速度非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:CPU主频1G),而内存就慢很多,快的内存能够达到几十兆就不错了,可见两者的速度差异是多么的大。缓存是为了解决CPU速度和内存速度的速度差异问题。内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数据了,CPU只要到缓存中去取就行了,而缓存的速度要比内存快很多。
这里要特别指出的是:因为缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速度就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的。
关于一级缓存和二级缓存
为了分清这两个概念,内存有RAM和ROM两种,我们先了解一下RAM(随机存储器) 和ROM(只读存储器).
RAM和ROM相对的,RAM是掉电以后,其中信息就消失那一种,ROM在掉电以后信息也不会消失那一种,RAM又分两种,
一种是静态RAM:SRAM;一种是动态RAM:DRAM。前者的存储速度要比后者快得多,我们现在使用的内存一般都是动态RAM。
有的菜鸟就说了,为了增加系统的速度,把缓存扩大不就行了吗,扩大的越大,缓存的数据越多,系统不就越快了吗.缓存通常都是静态RAM,速度是非常的快,但是静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍),价格高(同容量的静态RAM是动态RAM的四倍),由此可见,扩大静态RAM作为缓存是一个非常愚蠢的行为,但是为了提高系统的性能和速度,我们必须要扩大缓存,这样就有了一个折中的方法,不扩大原来的静态RAM缓存,而是增加一些高速动态RAM做为缓存,这些高速动态RAM速度要比常规动态RAM快,但比原来的静态RAM缓存慢,我们把原来的静态ram缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的存在都是为了减少高速CPU对慢速内存的访问。
通常CPU找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了
java一级缓存二级缓存_一级缓存和二级缓存的理解相关推荐
- 无忧考吧2017二级java_无忧考吧二级JAVA超级模拟软件下载_无忧考吧二级JAVA超级模拟软件官方下载-太平洋下载中心...
无忧考吧二级JAVA超级模拟软件是一款可以帮助用户朋友来学习计算机二级java语言考试的软件,使用这款二级java模拟考试软件可以帮助用户快速的掌握学习内容和操作逻辑,让你顺利的通过二级java考试. ...
- java缓存内存泄漏_记一次mybaits缓存导致的内存溢出 java.lang.OutOfMemoryError: Java heap space...
先贴一下错误截图 org.springframework.web.util.NestedServletException: Handler dispatch failed; nested except ...
- redis一般缓存什么样数据_门户数据展示_Redis缓存数据
学习主题:门户数据展示_Redis缓存数据 一.Redis_3主3从集群环境搭建 谈单你对读写分离和主从同步的理解 读写分离:Master负责写数据的操作,salve负责读数据的操作 主从同步:sal ...
- 织梦DedeCMS实现 三级栏目_二级栏目_一级栏目_网站名称 的效果代码
1.将官方原来的排列方式反过来,找到include/typelink.class.php第164行 $this->valuePositionName = $tinfos['typename']. ...
- java 2维数据便利_计算机等级考试二级java数组辅导
数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信息分组的便利方法. 注意: ...
- 历年全国Java二级考试_历年计算机等级二级考试Java真题(文字版)
选择题(每小题2分,共70分) (1)下列数据结构中,属于非线性结构的是 A)循环队列 B)带链队列 C)二叉树 D)带链栈 (2)下列数据结构中,能够按照"先进后出"原则存取数据 ...
- c语言 二级菜单_收下计算机二级秘笈,考场上说好不哭!
计算机二级考试火热进行中~ 听说有些人明天考试 今天才记起来自己报名了 听说还有些同学 准备明天在考场上重新"编写"office运行法则 当然 还有很多同学现在正在抓紧时间复习吧 ...
- java数组的clone方法_深入浅出,如何更彻底地理解Java数组的clone方法
说在前面 在进入理解clone前,我们需要对"基本数据类型"和"引用数据类型"的存储模式有一个清晰的认识. 基本数据类型,变量的内容保存的是实际的值:引用数据类 ...
- java 素数欧拉筛选_[C++]欧拉素数筛的理解与实现
在传统的素数筛法中,我们使用了对于每一个数n,在 1~(√n) 范围内进行取模检查,这样逐一判断的复杂度为n(√n). 但如果我们需要更快的筛法时怎么办? 于是著名的欧拉筛诞生了.它能将复杂度降为** ...
- upnp 二级路由_下载宝作为二级路由折腾记-小白篇 - Padavan - 恩山无线论坛 - Powered by Discuz!...
本帖最后由 muzilee 于 2018-1-9 13:01 编辑 首先要感谢下载宝单臂路由的另类玩法,献给那些主路由是1000M 博通路由粉, 又苦于没有老毛子固件"让我入了下载宝的坑 . ...
最新文章
- laravel判断HTTP请求是否ajax
- 建立海盗的天堂:盗贼之海的AI设定(三):巨齿鲨、海怪和骷髅船的AI运行
- 2017第八届蓝桥杯C/C++ B组省赛 —— 第一题:购物单
- MySQL错误ERROR 1366 (HY000): Incorrect string value..
- 中俄国际社区大佬共话Java,苦Lambda表达式久矣?
- Flex(flash)检测摄像头的3种状态(是否被占用,没安装摄像头,正常)
- bug君你好啊之servlet页面读取jsp的url的值显示为null
- Pandas循环提速 7 万多倍是怎么实现的?
- win7IE10和win7IE11浏览器更新所需补丁全套【附安装流程】
- 安装Editplus软件
- mysql数据库更新数据库语句_详解MySQL数据库之更新语句
- [链接汇总]在用Matlab解微分方程时比较有用
- sqlalchemy 常用数据类型有哪些?
- 学习Tomcat这一篇就够了
- 技术随笔 五 —— 心中的马
- 湖南大学计算机考研科目2020,2020湖南大学计算机与软件工程考研初试科目、参考书目、录取情况全解析...
- Oracle简单操作总结
- python做用友财务报表_用友财务软件怎样生成财务报表?
- Windows 下启动tomcat
- 网络是黄色的叹号,上不了网,DHCP占用CPU高