这篇文章我尽量说明高速缓存的是啥,和高速缓存至关重要的作用。(纯爱好,发现错误赶快联系我)
如果单单去观察一个HelloWord和程序是如何在计算机从执行的,就会发现系统花了大量的时间吧信息从一个地方加载到另一个地方,HelloWord程序最初存放在硬盘上,然后当程序加载时被复制到主存,当CPU运行,这些程序又要复制到CPU…,这些复制的开销减慢了程序的执行效率。那么怎么办呢?
首先我们要清楚的是,较大的储存设备比较小的设备运行的慢(机械原理决定的),而同类存储设备中,存储快的设备比存储慢的设备贵很多。比如吧:你的硬盘可能比你的内存大1000倍,但是CPU从硬盘上读取一字节花费的时间可能比你从内存中花费的时间多1000万倍!
在比如说寄存器文件(CPU里的一个存数据的东西,比高速缓存还要快)只能存储几百个字节,内存里可能存放几十亿字节,但是从寄存器文件中读取数据要比从内存中大概快100倍!
针对这种CPU和内存的差异,这篇文章的主角高速缓存诞生了。高速缓存比主存更小更快,存放CPU经常访问的数据。这样可以大大提高程序的执行性能。
当然高速缓存比你想的还要复杂一点,高速缓存也是分级的,暂且成为L1,L2两级,L1的存放容量大概分为几万字节,访问速度基本和寄存器差不多,L2容量在数十万字节到数百万字节之间,但是仍然比访问内存块5-10倍,L1和L2用的是静态随机访问存储器(SRAM)的硬件技术实现,我还没弄明白这是个啥玩意呢,就不解释了。反正不影响你理解高速缓存的重要性。
正是由于高速缓存的存在,CPU有了一个比较大而且访问速度还挺快的存储器。大大提高了程序的执行性能。
哦对了 ,我在找工作,有那个老板缺java后台开发人员可以了解下我,达内培训机构出身,马上完成培训。算是半入行,就差这临门一脚。微信ma18526290799