给下次启动准备的便签
程序启动时,Windows会记录可执行文件及其DLL的哪些块真正从磁盘读过了,并把这份轨迹以.pf文件的形式存进C:\Windows\Prefetch。下次启动时,加载器对照这份轨迹,按最优顺序发起读取——一次大而有序的爆发,取代冷启动那种零散的小读取。同样的轨迹还喂给ReadyBoot(在机械盘上摆放引导文件)和SysMain——Windows 10改名前叫Superfetch的那个服务——它会在你开口之前就把常用块预取进内存。这个文件夹里没有任何为自己而存在的东西:每个文件都是Windows记下的一笔便签,为了让下次启动更便宜。
这个文件夹还自己管自己。轨迹按可执行文件路径的哈希索引,所以移动或更新过的程序会拿到新轨迹,旧的自动过期;系统会把目录修剪到大约最近一千个文件。一台典型电脑上躺着几百个.pf文件,每个10到20KB,总共5到15MB。这就是清理工具用红色警告条渲染的全部“问题”规模。
- C:\Windows\Prefetch为每个常启动的程序保留一条.pf轨迹
- 轨迹记录冷启动实际碰到的磁盘块
- ReadyBoot按轨迹在HDD上摆放引导文件
- SysMain在需求到来前把热点块预载进内存
- Windows自行把文件夹修剪到约一千条新轨迹——是兆级,不是吉级
为什么删掉它会更慢,而不是更快
删掉轨迹,Windows并不会认输——它会从零重新记笔记。清理后每个程序的第一次启动都跑冷启动的速度,在HDD上这就是两秒与七秒的差距,而且你用的每个应用都要付一次。第二、第三次启动会随着新轨迹积累而恢复。而用来给这套仪式撑腰的“Prefetch会膨胀”论调,恰恰是最站不住的部分:文件夹自己就把上限定在几十MB,清理工具自己的文件列表就是证据。
常见的脚注会说:SSD上prefetch无所谓,因为它抹平的那些寻道几乎不要钱。这只对了一半:Windows在固态系统盘上往往会调低SysMain,但轨迹文件照样不断出现,并仍在通过排序读取为启动省时间。删掉它们换不来任何可测的收益,却要在每个程序清理后首次运行时付出一小笔、可重复的损失。唯一正当的场景,是某条损坏的轨迹让某个特定应用启动异常——很少见,而且删掉那一个.pf文件就能解决,不是整个文件夹。
常见问题与解答
可以删除Windows Prefetch文件夹里的文件吗?
不会坏——Windows会重建轨迹——但纯属自己坑自己:清理后每个程序的首次启动都会明显变慢,直到新轨迹积累起来。
系统盘是SSD,该关掉prefetch吗?
不该。Windows本来就会在SSD上调低SysMain,文件夹一直很小,轨迹也仍在为启动读取排序。禁用预取是Windows XP时代流传下来的老调,早就没意义了。
继续阅读
联系我们: [email protected]