一、定义
Prefetching 是指一种操作,用于主动将预先预测需要被访问(或使用)的文件或数据载入处理器的内部高速缓存中。
二、历史渊源
Prefetching 这个词最早出现在 IBM 公司的技术文档中,1982 年的 IBM PC/AT 计算机中使用了这项技术。它的原理很简单,在 CPU 处理指令时,会优先将待处理数据预先读入高速缓存中,以便减少硬盘的 I/O 操作,提高处理速度。
三、工作机制
Prefetching 通常采用“提前要求”原理,其工作机制主要是通过分析指令流,将待处理的下一步可能用到的数据预先装入内存,以便没到使用时就已经装入内存当中,不用再将其读取,从而加快了程序的运行或提高了 CPU 的效率。
四、优点
Prefetching 具有很多优点:(1)它可以大大减少硬盘的 I/O 操作,从而提高 CPU 的工作效率;(2)增加缓存可以显著提高程序运行速度;(3)可以减少系统中寻址耗时。
五、缺点
Prefetching 也有缺点。过多的预先载入会使得缓存 center 过多,影响系统性能;另外,在某些情况下,如果请求的数据存放在外部存储上,预取操作无济于事。
Prefetch与Preload的区别:
1、Prefetch是一个浏览器的技术,它可以让浏览器根据已有的网络连接预先获取页面中的素材文件,而不是等到人们访问页面时才去获取,这样可以减少网页加载时间,以提高网站访客访问体验。
2、Preload是一个 HTML 标签,Preload 在不会立即使用素材时使用,它会提前加载素材,Preload 不会立即开始加载素材,而是条件地下载,等到有它们才会开始加载。
3、Prefetch可以在浏览器中预先加载某些页面,而Preload则会在页面正式访问时才开始加载,Preload 依靠浏览器预测未来需要加载的资源,并实现等待特定条件触发时才开始加载。
4、Prefetch的工作方式类似于浏览器历史记录,它是一种可以改善网站访问体验的技术,它可以通过预获取网页中的内容来提高网站的访问速度,而Preload的目的是减少页面加载时间,使用preload可以使文件和信息能够更快速地加载。
5、Prefetch更适合于经常重访问的内容,而Preload常常用于那些几乎每一次访问都需要资源的页面。
6、Preload 可以减少页面加载时间,而Prefetch可以改善网站的整体体验。