精华内容
下载资源
问答
  • 内存与缓存的区别

    2012-06-08 09:56:50
    CPU缓存(Cache Memoney)位于CPU与内存之间的临时存储器,它...由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的
      CPU缓存(Cache Memoney)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。

       缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。

      正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。

      最早先的CPU缓存是个整体的,而且容量很低,英特尔公司从Pentium时代开始把缓存进行了分类。当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上或主板上的缓存,此时就把 CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存。一级缓存中还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。英特尔公司在推出Pentium 4处理器时,还新增了一种一级追踪缓存,容量为12KB.

      随着CPU制造工艺的发展,二级缓存也能轻易的集成在CPU内核中,容量也在逐年提升。现在再用集成在CPU内部与否来定义一、二级缓存,已不确切。而且随着二级缓存被集成入CPU内核中,以往二级缓存与CPU大差距分频的情况也被改变,此时其以相同于主频的速度工作,可以为CPU提供更高的传输速度。

      二 级缓存是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级缓存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二级缓存上有差异,由此可见二级缓存对于CPU的重要性。

       CPU在缓存中找到有用的数据被称为命中,当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。目前的较高端的CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
     
      为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。

      CPU产品中,一级缓存的容量基本在4KB到64KB之间,二级缓存的容量则分为128KB、256KB、512KB、1MB、2MB等。一级缓存容量各产品之间相差不大,而二级缓存容量则是提高CPU性能的关键。二级缓存容量的提升是由CPU制造工艺所决定的,容量增大必然导致CPU内部晶体管数的增加,要在有限的CPU面积上集成更大的缓存,对制造工艺的要求也就越高。

    -------------------------------------------------------------------------------------------------


    缓存是CPU的一部分,它存在于CPU中
    CPU存取数据的速度非常的快,一秒钟能够存取、处理十亿条指令和数据而内存就慢很多,快的内存能够达到几十兆就不错了,可见两者的速度差异是多么的大

    缓存是为了解决CPU速度和内存速度的速度差异问题

    内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数据了,CPU只要到缓存中去取就行了,而缓存的速度要比内存快很多

    展开全文
  • 内存缓存的区别

    2016-07-05 17:55:19
    CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存...
    缓存是集成于CPU当中,作为CPU运算的存储支撑。
    由于CPU芯片面积和成本的因素来考虑,缓存都很小。现在一般的缓存不过几M。CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存或者硬盘上寻找,以此提高系统性能。
    
    
    内存则是作为CPU与硬盘间的存储支撑。
    插在主板的内存槽中。现在内存一般为1~2G。即1G=1024M
    它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。 内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把需要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。</span>
    展开全文
  • 最近在看缓存相关的框架,刚好顺便总结一下内存缓存和磁盘缓存的区别。 缓存分为内存缓存和磁盘缓存两种,其中内存是指当前程序的运行空间,缓存速度快容量小,是临时存储文件用的,供CPU直接读取,比如说打开一个...

    最近在看缓存相关的框架,刚好顺便总结一下内存缓存和磁盘缓存的区别。

    缓存分为内存缓存和磁盘缓存两种,其中内存是指当前程序的运行空间,缓存速度快容量小,是临时存储文件用的,供CPU直接读取,比如说打开一个程序,他是在内存中存储,关闭程序后内存就又回到原来的空闲空间;磁盘是程序的存储空间,缓存容量大速度慢可持久化与内存不同的是磁盘是永久存储东西的,只要里面存放东西,不管运行不运行 ,他都占用空间!磁盘缓存是存在Library/Caches。

    说道iOS内存就不得不说内存分区了,iOS内存分为5个区:栈区,堆区,全局区,常量区,代码区

    栈区stack:这一块区域系统会自己管理,我们不用干预,主要存一些局部变量,以及函数跳转时的现场保护。因此大量的局部变量,深递归,函数循环调用都可能导致内存耗尽而运行崩溃。

    堆区heap:与栈区相对,这一块一般由我们自己管理,比如alloc,free的操作,存储一些自己创建的对象。

    全局区(静态区static):全局变量和静态变量都存储在这里,已经初始化的和没有初始化的会分开存储在相邻的区域,程序结束后系统会释放

    常量区:存储常量字符串和const常量

    代码区:存储代码

     

    说道硬盘缓存这里就不得不提 iOS的沙盒机制, 

        iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等

     默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。

             Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录

            Library:存储程序的默认设置或其它状态信息;

              Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除.

              Library/preferences: 存放的是 user default 存储的信息,iTunes会备份此目录, 应用程序重新启动不会丢弃数据,我们使用 NSUserDefaults写的设置数据都会保存到该目录下的一个plist文件中,这就是所谓的写到plist中!

              tmp:提供一个即时创建临时文件的地方, iTunes不会备份此目录

    用户生成的文件放在documents,自己的文件放在library/cache里面,简单的说明:如果你做个记事本的app,那么用户写了东西,总要把东西存起来。那么这个文件则是用户自行生成的,就放在documents文件夹里面。如果你有一个app,需要和服务器配合,经常从服务器下载东西,展示给用户看。那么这些下载下来的东西就放在library/cache。apple对这个很严格,放错了就会被拒。主要原因是ios的icloud的同步问题。



    作者:子夏的不语
    链接:https://www.jianshu.com/p/3b0e290cc049
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • 缓存与内存的区别

    2018-03-31 16:04:00
    https://blog.csdn.net/lansesl2008/article/details/70224079 转载于:https://www.cnblogs.com/fengff/p/8682661.html

    https://blog.csdn.net/lansesl2008/article/details/70224079

    转载于:https://www.cnblogs.com/fengff/p/8682661.html

    展开全文
  • 【IT168 编译】计算机内存和外部存储之间主要区别是易失性和非易失性,以及性能和容量之间差别。·易失性VS非易失性。内存,例如随机存取内存(RAM),是具有易失性。这意味着当系统断电时,数据就会丢失。之...
  • 寄存器与缓存的区别

    千次阅读 2015-10-26 15:27:44
    CPU远近来分,离得最近是寄存器,然后缓存,最后内存。 所以,寄存器是最贴近CPU,而且CPU只寄存器中进行存取。 (寄存意思是,暂时存放数据,不中每次从内存中取,它就是一个临时放...
  • CPU远近来分,离得最近是寄存器,然后缓存,最后内存。所以,寄存器是最贴近CPU,而且CPU只寄存器中进行存取。(寄存意思是,暂时存放数据,不中每次从内存中取,它就是一个临时放数据空间,火车站...
  • 将用户经常查询数据放在缓存内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据中)查询,从缓存中查询,从而提高查询效率,解决了高并发系统性能问题。 2、为什么使用缓存 减少和数据库交互次数,...
  • 缓存是介于应用程序和物理数据源... 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发访问和缓存
  • 内存缓存与LruCache

    2016-05-02 15:19:05
    1.内存缓存的核心: 存:就有很多的考虑 取:只需要知道唯一的key就可以了 2.选择什么样的存储结构/容器/集合?MapLruCache的使用: 一个工具方法,提供了基于Lru缓存策略的强引用的内存缓存,存储结构使用的...
  • 3、高速缓存是存放在CPU中,它是介于CPU与内存之间,以缓解它们之间速度不匹配矛盾,使得内存访问CPU时候较快。 4、缓存是指在内存中划分出一块区域用于存放常使用输入输出数据,以缓解CPU外设处理速度...
  • hibernate一级缓存和二级缓存的区别与联系(转) 缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,...
  • 一、Redis简介Redis 是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型数据结构,如字符串(Strings),散列(Hashes),列表(Lists),集合(Sets),有序集合(Sorted Sets...
  • 内存缓存之间有什么区别

    万次阅读 2012-03-04 18:53:48
    CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存...
  • 缓存可以是CPU缓存内存缓存、硬盘缓存,不同的缓存查询速度也不一样(CPU缓存 优于 内存缓存 优于 硬盘缓存)。接下来,给大家逐一进行介绍。浏览器缓存浏览器将请求过页面存储在客户端缓存中,当访问者再次访问...
  • 缓存是介于应用程序和物理数据源之间,其作用... 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发
  • 缓存是指可以进行高速数据交换存储器,它先于内存与CPU交换数据,因此速度很快缓存(Cache memory)是硬盘控制器上一块内存芯片,具有极快存取速度,它是硬盘内部存储和外界接口之间缓冲器。由于硬盘内部...
  • 缓存是介于应用程序和物理数据源之间,其作用... 缓存的介质一般是内存,所以读写速度很快。但如果缓存中存放的数据量非常大时,也会用硬盘作为缓存介质。缓存的实现不仅仅要考虑存储的介质,还要考虑到管理缓存的并发
  • 一次SqlSession 数据库 会话 就后 (依赖一去 产生 缓存内存) sqlSession中执行两次相同sql语句时,第一次执行完毕会将数据库中查询数据写到缓存内存), 第二次查询时会从缓存中获取数据,不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,507
精华内容 602
关键字:

内存与缓存的区别