zoukankan      html  css  js  c++  java
  • 每日一问14: 缓存和缓冲的区别

    每日一问14: 缓存和缓冲的区别

    ​ 这两个名词在英文中,本来是不会混淆的,缓冲buffer,缓存cache,但是翻译成中文后却很容易搞混,要注意区分。

    ​ 这两个概念并不是指泾渭分明的两个东西,而是不同角度的事物。先看一下《深入理解计算机系统》中对于缓存的定义:

    一般而言,高速缓存(cache)是一个小而快速的存储设备,它作为存储在更大、也更慢的设备中的数据对象的缓冲区域。适用高速缓存的过程称为缓存(caching)。(CSAPP,第三版p422)

    ​ 可以看到,计算机系统中,缓存就是一块具体的缓冲区域。所以我们可以说,缓冲是一个相对抽象的概率,而缓存是缓冲的一个具体实现。这一点也可以从高速缓存的全称,高速缓冲存储器得知。

    缓存(cache)与缓冲(buffer)的主要区别

    ​ 如果非要说这两者之间的区别,我在网上找到的说法如下: https://www.cnblogs.com/mlgjb/p/7991903.html

    Buffer的核心作用是用来缓冲,缓和冲击。比如你每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了,日子过得爽了。极大缓和了冲击。

    Cache的核心作用是加快取用的速度。比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了。加快了数据取用的速度。

  • 相关阅读:
    js前端分享功能
    git常用命令
    webstorm中.vue报错
    页面重绘重排
    浏览器渲染引擎总结
    javascript中的this总结
    cookie、session、sessionid 与jsessionid
    promise和Angular中的 $q, defer
    C++11之nullptr
    C++ 输入ctrl+z 不能再使用cin的问题
  • 原文地址:https://www.cnblogs.com/honernan/p/14618801.html
Copyright © 2011-2022 走看看