当前位置: 首页 > 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的不同
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • 【css3】浏览器内核及其兼容性
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 30秒的PHP代码片段(1)数组 - Array
  • chrome扩展demo1-小时钟
  • github从入门到放弃(1)
  • JavaScript-Array类型
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Linux Process Manage
  • SpiderData 2019年2月23日 DApp数据排行榜
  • Vue官网教程学习过程中值得记录的一些事情
  • vue总结
  • 百度地图API标注+时间轴组件
  • 每天10道Java面试题,跟我走,offer有!
  • 巧用 TypeScript (一)
  • 入门到放弃node系列之Hello Word篇
  • 使用API自动生成工具优化前端工作流
  • 我这样减少了26.5M Java内存!
  • python最赚钱的4个方向,你最心动的是哪个?
  • 从如何停掉 Promise 链说起
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • ${factoryList }后面有空格不影响
  • (0)Nginx 功能特性
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • .java 9 找不到符号_java找不到符号
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @RequestBody与@ResponseBody的使用
  • @RestControllerAdvice异常统一处理类失效原因
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [1]-基于图搜索的路径规划基础
  • [1204 寻找子串位置] 解题报告
  • [Gym-102091E] How Many Groups
  • [ICCV2017]Neural Person Search Machines
  • [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞
  • [orleans2.1]这是你没玩过的船新版本
  • [Redis]Redis高级特性的配置及使用
  • [编程题]数据库连接池 - 牛客网题解
  • [从0开始机器学习]4.线性回归 正规方程