缓冲区和缓存区别?

时间:2010-07-07 07:01:19

标签: sql-server windows

任何人都可以详细说明 - 系统内存中Buffer和Cache有什么区别?

4 个答案:

答案 0 :(得分:22)

缓冲区只是一个容器,用于在任何给定时间进入比消费者可以使用/处理更多的数据时短时间保存数据。这是一个先进先出的情况 - 数据进入,可能会被缓冲,并且在一段时间后以相同的顺序出现。

缓存是用于加速某些操作的存储。事情被放入缓存中,应该多次从中检索,一遍又一遍。没有“流经缓存”的那种机制 - 数据不会以相同的顺序进入和退出 - 但它只是一个容器。订单可能是任何东西,实际上 - 物品是通过钥匙处理的,它们不会“流过”但是它们被“放入”并留在那里(直到它们因为没有被使用而被抛出,或者因为系统落下)。

答案 1 :(得分:5)

buffer是一个当代的位置集合,可以管理或分解大量数据。这可能是与需要大量信息的一组收集设备进行交互的基础,或者当数据必须以多于制作数据的方式给出时,或者当较少的块不足时很少相当。即使缓冲数据一次存储到缓冲区并从缓冲区获取一次,优点也在这里。

另一方面,cache认为数据将从缓存中获取的次数多于写入缓存的时间。 其目的是减少对底层股票的访问。 缓冲区是由主存储器中的操作系统管理的可编程缓存,用于从磁盘获取最必要的数据,因此不必从内存中再次获取它们。操作系统可以使用此功能。缓存实际上是CPU用来减少有效内存访问时间的硬件。

答案 2 :(得分:0)

Wiki添加关于缓冲区缓存之间差异的内容。

  

缓冲区是传统上使用的临时内存位置   因为CPU指令不能直接寻址存储的数据   外围设备。因此,可寻址存储器用作   中间阶段。另外,当a时,这样的缓冲器是可行的   大块数据被组装或拆卸(根据需要)   存储设备),或者数据可能以不同的顺序传送   而不是它的生产。此外,整个数据缓冲区是   通常顺序传输(例如到硬盘),所以   缓冲本身有时会提高传输性能或降低   传输延迟的变化或抖动,而不是   缓存目的是减少延迟。这些好处是   即使缓冲的数据被写入缓冲区一次也会出现   从缓冲区读取一次。

     

缓存还可以提高传输性能。增加的一部分   类似地来自多次小转移的可能性   将合并成一个大块。但主要的表现 - 获益   之所以发生,是因为很有可能会读取相同的数据   从缓存中多次,或者很快就会读取写入的数据。一个   缓存的唯一目的是减少对底层较慢的访问   存储。缓存通常也是设计的抽象层   从相邻层的角度来看是不可见的。

答案 3 :(得分:-1)

缓冲区就像一个鼓,它可以保存数据并将其清除......另一方面,缓存用于使您的操作更快。