为何windows自带的文件搜索这么慢,而Everything的这么快?
跟你们说一个我自己的真实的经历,有一天我在我电脑里找一个文件,名字我都记得非常清楚,结果用Windows搜索,他给我来一句:“正在搜索中....”转圈,发呆,像极了你在思考人生。
我当时一度怀疑我的电脑是不是坏了,结果我一气之下打开Everything,输入同样的名字,文件直接跳出来,那一刻我真的破防了!
同样的电脑,同样的文件名字,一个像是在图书馆里找书,一个像是记得图书馆里每本书放到什么位置,这个差距,到底是怎么来的?
我最初的理解是:Everything他的算法更猛,后来发现,根本就不是这么回事!
为什么?
因为Windows的搜索,从本质上来说,他不是只查找“文件”,他会做很多事情,比如:找文件名、找文件内容、找邮件、设置、甚至他还自动联网给你搜东西等等一些列操作。
简单说:Windows他是一个全能的搜索入口,他是依靠索引系统来进行搜索的。
最简单的理解是:他会提前把文件“放在一个小本子里”,以后查找起来更快,这样听起来好像非常合理,但是问题就出现在这里,“他自己记录的小本子”其实不完整,他只会默认记录部分文件夹(比如文档、桌面等)。
假如你把文件放在了其他地方,不好意思,他就得临时搜索。就变成了“人工去图书馆找书”
最离谱的是,他还要顾忌系统的性能,假如这个时候你在使用电脑,他会“放慢搜索速度”,甚至等你不用电脑的时候,他才开始“干活”!
这个时候你就会发现,你越着急,他越慢,你说你气不气。
然而Everything的逻辑是,他只做一件事情,他会记录所有文件的名字,他不是依靠搜索,而是直接读取NTFS 文件系统的“文件表”(MFT)。
最简单的理解就是:系统有一份完整的清单,你拿来就能使用,他的逻辑是:你在输入关键词的时候,不是依靠搜索,而是依靠筛选。
如果两者对比一下就是:Windows:“等一下,我要去图书馆里慢慢给你找,”而Everything:“在第一排第三格,拿走”,就是这么简单粗暴。
那为什么Windows不直接做成Everything的那样?
其实这个问题我也想过,但是后面我想明白了一个点:他们的目标根本不一样,Everything:只管文件名字,而Windows他是一个统一的入口,什么都能满足。
其实他们是互相冲突的,因为:你搜索内容,就很复杂,你要兼容各种格式,就很慢,你要考虑系统负载,他就不会全力跑。
说直白一点就是:Everything是“专业选手”。 Windows是“全能选手”。
所有如果你在找文件就使用Everything,如果你找某个应用就使用Windows搜索。不用去纠结谁更好,他们根本就不是一类东西。
Windows他只是搜索慢,不是因为他不行,而是他想做的事情太多了。而Everything非常快,是因为他只做一件事情,而且把这件事情做到极致。
最后说句很现实的话:你在找文件的时候,真的需要“查找所有吗”,还是只是想,“赶紧把文件找出来?”