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

html5 手机网站开发教程百度一对一解答

html5 手机网站开发教程,百度一对一解答,海外站推广,网站seo链接购买近期被这两个词汇困扰了,感觉有本质的区别,搜了一些资料,整理如下 计算机内部的几个部分图如下 缓存(cache) https://baike.baidu.com/item/%E7%BC%93%E5%AD%98 提到缓存(cache),就…

近期被这两个词汇困扰了,感觉有本质的区别,搜了一些资料,整理如下

计算机内部的几个部分图如下

缓存(cache)

https://baike.baidu.com/item/%E7%BC%93%E5%AD%98

提到缓存(cache),就想到了 cpu 高速缓存,其实最开始的缓存也是这个。

目的就是为了让 cpu 和内存之间的数据交互速度变快设计的。

从下到上访问速度依次递减,容量也越来越大。内存的访问速度比 cpu 缓存访问速度慢 100倍。

https://www.zhihu.com/question/349982942/answer/2935754503

其他缓存

浏览器缓存

https://baike.baidu.com/item/%E6%B5%8F%E8%A7%88%E5%99%A8%E7%BC%93%E5%AD%98

之前的时代,网络不发达,带宽小,有了浏览器,打开一个网页需要每次加载页面需要的资源会时间长,后面浏览器的开发者就想到了重复的资源没必要重新加载,就考虑到浏览器缓存。

对于访问的资源如果每个请求后面都加了时间戳就没缓存了(缓存失效),相对于不加对于打开一个页面会发现明显变慢。

内存缓存 redis

对于数据库访问这块,为了减少数据库的访问次数,redis 的大神就想到了在内存中暂存这些数据。

因为内存通常来讲大一些,速度比硬盘快多了,所以在内存上暂存数据是一个不错的选择。

但是 redis 不是只有缓存功能,还有一些其他的功能。

缓冲(buffer)

为了提高内存和硬盘或其他io设备之间数据交换的速度设计的。在上面 cpu 缓存的基础上,硬盘比内存慢了几个数量级。

本质就是在内存上单独开辟了一个数组来存储当前的数据,将对磁盘的操作由随机操作变为顺序操作。由于磁盘的随机操作与顺序操作之间的数量级差距,在执行结果中会看到明显的差距。是用空间换时间的思想的实现。

压缩文件类似原理,将一个文件夹中的多个文件进行压缩,将多个小文件整理为一个文件,在磁盘上空间连续,在传输的过程中感觉快,如果是复制整个文件夹,会发现传输时间相对于压缩文件长,对于那些小文件数量多的情况下特别明显。

java 实现

如下 java.io 自带的原始的缓冲类

BufferedInputStream

package java.io;public class BufferedInputStream extends FilterInputStream {private static int DEFAULT_BUFFER_SIZE = 8192;protected volatile byte buf[];public BufferedInputStream(InputStream in) {this(in, DEFAULT_BUFFER_SIZE);}
}


BufferedOutputStream

package java.io;public class BufferedOutputStream extends FilterOutputStream {protected byte buf[];public BufferedOutputStream(OutputStream out) {this(out, 8192);}
}	

BufferedReader

package java.io;public class BufferedReader extends Reader {private Reader in;private char cb[];private static int defaultCharBufferSize = 8192;public BufferedReader(Reader in, int sz) {super(in);if (sz <= 0)throw new IllegalArgumentException("Buffer size <= 0");this.in = in;cb = new char[sz];nextChar = nChars = 0;}public BufferedReader(Reader in) {this(in, defaultCharBufferSize);}
}	


BufferedWriter

package java.io;public class BufferedWriter extends Writer {private Writer out;private static int defaultCharBufferSize = 8192;public BufferedWriter(Writer out) {this(out, defaultCharBufferSize);}
}

每个类中声明的缓冲数组在没有指定大小的情况下都是 8192,即 8MB。体现了预读的思想。

https://blog.csdn.net/qingfan_714/article/details/115439234

数据库中的 join buffer

mysql 中针对多表联合查询,在驱动表中会查询出符合要求的数据放在内存中与被驱动表进行嵌套查询。因为数据库的数据存储在磁盘上,由于存储设备与内存数据访问的速度差距,将数据放在内存中暂存是一个很好的选择,但是驱动表的数据需要做筛选,数据量不能多,遵循小表驱动大表原则。

总结

缓存和缓冲都是为了解决计算机的各个部分的访问速度设计的。

针对 cpu 和内存之间的速度慢的问题,设计了 cpu 与内存中间的三个级别的缓存。

针对内存与存储设备之间的速度慢的问题,编码在内存层面设计了缓冲区域将读取或者写入的数据批量处理。将存储设备的随机处理变为顺序处理,是空间换时间思想的实现。

在日常开发中,遇到的问题瓶颈一般是缓冲的问题。因为内存和 cpu 之间的缓存我们无法控制,但是在内存和硬盘层面的缓冲现有的工具无法满足我们可以自己编码处理。

参考链接

https://zhidao.baidu.com/question/7153396.html

https://blog.csdn.net/weixin_42559574/article/details/115290225

https://zhuanlan.zhihu.com/p/376380293

https://www.cnblogs.com/smalldong/p/14337528.html

https://baike.baidu.com/item/%E7%BC%93%E5%86%B2%E6%8A%80%E6%9C%AF/1937843

https://www.cnblogs.com/taking/p/15707375.html

https://zhuanlan.zhihu.com/p/563185831

https://www.jianshu.com/p/d049943a9cc5

http://www.yidumall.com/news/27439.html

相关文章:

  • 我想做一个小网站搞页游该怎么做旺道网站排名优化
  • wordpress 文章模版seo教程seo教程
  • 惠州市网站建设中关村在线app
  • 做网站用什么虚拟主机免费发广告的平台有哪些
  • 江苏网站建设系统服务信息流优化师培训机构
  • 大连九死一疯事件seo零基础培训
  • 网站降权查下今日刚刚发生新闻事件
  • 先做网站主页还是先上架宝贝网店seo排名优化
  • 本网站正在建设中磁力吧ciliba
  • 学会网站建设目的网站托管维护
  • 做网站的开发软件是什么天津seo排名收费
  • 杭州网站建设哪家公司好搜索软件排行榜前十名
  • 如何上传安装网站模板电商网络营销
  • 视频播放网站开发北京百度推广代理
  • 深圳电子商务网站制作google关键词分析工具
  • 优推宝可以做自己网站吗汕头seo全网营销
  • 最好的营销网站网站关键词在哪里看
  • 网站建设需要的硬件网站宣传费用
  • 购物网站的后台做哪些东西艾瑞指数
  • 设计师个人网站主页浏览器下载
  • 学做效果图网站知乎推广公司
  • php网站制作软件西藏自治区seo 标题 关键词优化
  • 网上怎么做网站赚钱网站制作软件
  • 免费微网站系统源码高级seo招聘
  • 连城县住房和城乡建设局 网站网络推广推广
  • 淘客网站添加到桌面全球搜
  • 使用vue做简单网站教程seo实战论坛
  • 搭建一个商城类网站南宁百度推广seo
  • 做一网站要什么2020新闻大事件摘抄
  • 贵阳网站建设方案杭州排名优化软件