当前位置: 首页 > news >正文

缓存与缓冲

缓存的思想由来已久,简单地说,缓存的目的就是把需要花费昂贵开销的计算结果保存起来,在以后需要的时候直接取出,而避免重复计算,一切缓存的本质都是如此。计算机乃至互联网,缓存的应用数不胜数,我们都知道CPU缓存,它是位于CPU和内存之间的临时存储器,它的容量不大,但是交换速度要高于内存,CPU将频繁交换的数据放在缓存中,如果以后需要则直接读取缓存,从而避免访问速度较慢的内存,不可否认,尽管我们认为内存速度已经很快,但是在CPU缓存面前,它还是力不从心。

缓冲(buffer)。缓冲的原意出自物理学,那就是减缓冲击力,在计算机应用场景中,我们使用它的引申含义,其目的在于改善各部件之间由于速度不同而引发的问题。比如将用户态地址空间的数据写入磁盘时,显然内存的速度比磁盘速度要快得多,所以人们设计了磁盘缓冲区,让数据源源不断地流进缓冲区,再由缓冲区负责写入磁盘,这样内存便可以不必随着磁盘的慢节奏来工作,所以磁盘缓冲区起到了将快速设备和慢速设备平滑衔接的作用,另外我们在线观看视频的时候,视频缓冲区的意义也是如此。

缓冲和缓存有一些相似之处,比如它们都需要一块存储区,而且它们的本质都与速度不一致有关,即便是缓存,如果计算速度和读取缓存的速度差不多,那么它也毫无意义。但是,缓存更加注重的是策略,也就是说缓存命中率,如果每次都能在缓存中找到需要的数据,那是最理想的结果,如果每次都在缓存中找不到需要的数据,那么缓存将变得毫无价值,并且还由于缓存的管理逻辑增加了新的开销。所以凡是使用缓存,都一定要意识到命中率的重要性。

相关文章:

  • 一个JAVA程序员的成长经历
  • 记萌新赛的命题过程与踩气球过程
  • Mysql的连接状态
  • java集合类(二)
  • 对OpenCV中Haar特征CvHaarClassifierCascade等结构理解
  • 《代码整洁之道》读书笔记
  • ArcEngine标注和注记(-)
  • cucumber安装可能发生的错误
  • Java获取本地IP地址
  • vue的路由传值query方法
  • Linux 安装python3.7.0
  • TensorFlow教程03:针对机器学习初学者的MNIST实验——回归的实现、训练和模型评估...
  • 云计算人才观念更重要
  • 以流动债务为例论指标的合理使用
  • 初学python,感受和C的不同
  • echarts的各种常用效果展示
  • HTTP请求重发
  • miaov-React 最佳入门
  • Mysql5.6主从复制
  • Object.assign方法不能实现深复制
  • Vue2.0 实现互斥
  • vue2.0开发聊天程序(四) 完整体验一次Vue开发(下)
  • windows-nginx-https-本地配置
  • 大数据与云计算学习:数据分析(二)
  • 猴子数据域名防封接口降低小说被封的风险
  • 简单易用的leetcode开发测试工具(npm)
  • 开发基于以太坊智能合约的DApp
  • 悄悄地说一个bug
  • 深度解析利用ES6进行Promise封装总结
  • 通过几道题目学习二叉搜索树
  • 一道闭包题引发的思考
  • 用Visual Studio开发以太坊智能合约
  • 正则表达式小结
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​TypeScript都不会用,也敢说会前端?
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #includecmath
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #window11设置系统变量#
  • (4)STL算法之比较
  • (C语言)fread与fwrite详解
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (一)VirtualBox安装增强功能
  • ****三次握手和四次挥手
  • .libPaths()设置包加载目录
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET大文件上传知识整理
  • /run/containerd/containerd.sock connect: connection refused
  • @test注解_Spring 自定义注解你了解过吗?
  • [1] 平面(Plane)图形的生成算法
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [Apio2012]dispatching 左偏树
  • [BZOJ1178][Apio2009]CONVENTION会议中心