当前位置: 首页 > 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的不同
  • HashMap ConcurrentHashMap
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • MaxCompute访问TableStore(OTS) 数据
  • miaov-React 最佳入门
  • Node + FFmpeg 实现Canvas动画导出视频
  • SpiderData 2019年2月23日 DApp数据排行榜
  • vue--为什么data属性必须是一个函数
  • windows下如何用phpstorm同步测试服务器
  • 闭包--闭包作用之保存(一)
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 分享一份非常强势的Android面试题
  • 回顾 Swift 多平台移植进度 #2
  • 基于Android乐音识别(2)
  • 记录一下第一次使用npm
  • 开源SQL-on-Hadoop系统一览
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 微信小程序设置上一页数据
  • 写代码的正确姿势
  •  一套莫尔斯电报听写、翻译系统
  • FaaS 的简单实践
  • "无招胜有招"nbsp;史上最全的互…
  • #QT(串口助手-界面)
  • (2022 CVPR) Unbiased Teacher v2
  • (C++20) consteval立即函数
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (poj1.2.1)1970(筛选法模拟)
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (蓝桥杯每日一题)love
  • (七)理解angular中的module和injector,即依赖注入
  • (十三)Flask之特殊装饰器详解
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .net 8 发布了,试下微软最近强推的MAUI
  • .net core使用ef 6
  • .NET LINQ 通常分 Syntax Query 和Syntax Method
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .Net面试题4
  • .pop ----remove 删除