预取
预取是一种优化技术,会在数据实际被请求之前获取数据并将其加载到内存中。预取成功时,可以提升性能并减少延迟,因为应用程序不需要从速度较慢的存储磁盘读取数据,而是可以从速度更快的内存缓存中访问数据。不过,这要求系统能够准确预测应用程序或进程将提前需要哪些数据。如果系统预测错误,预取可能会造成资源浪费。
为了预测需要预取哪些数据,计算机系统会分析使用模式,了解用户和应用程序通常如何请求数据。系统可能使用简单的模式匹配算法,也可能使用高级机器学习来预测未来行为。大多数操作系统会利用这些信息,通过预先加载应用需要的数据来加快应用启动速度;在Windows中,此功能称为 SuperFetch,在macOS中则称为 Application Launch Services。Android 和 iOS 等移动操作系统也使用预取来加快应用启动速度。
软件应用程序和硬件设备都可以包含内置的预取功能。CPU通常会使用预取,将下一组执行指令加载到缓存中。如果系统预计即将需要纹理图像,GPU会将它们预取到VRAM中,以便渲染即将显示的帧。数据库系统通常会在查询执行前,预取该查询可能请求的数据。Web 浏览器甚至可以从当前页面链接到的其他网页中预取数据,下载脚本、图像、音频和视频,以便你点击链接后下一页面能够更快加载。
测试你的知识