经常用everything对硬盘有伤害吗?

123 篇文章 0 订阅
119 篇文章 0 订阅

Everything是很多人都很喜欢的一款Windows上的搜索引擎,它比Windows内置的搜索要快得多得多。

Everything的工作原理

在了解Everything如何工作之前,我们还需要理解NTFS的两个功能,MFT和

USN journal。

MFT(Master File Table)

NTFS文件系统中,有一个特殊的MFT表,它位于每个NTFS分区的根目录中,名为$MFT。所有文件夹和文件的名称都存储在这样一张表中,但不能通过用户模式API进行访问。

USN journal

NTFS文件系统还拥有一个日志功能,它最初是一个空文件,每当对卷进行更改时,一条记录就会被添加到$Extend\$UsnJrnl的NTFS元文件中。它并不包含与更改相关的所有数据或详细信息,因此更改这个日志不能对NTFS中的文件进行操作。

Everything在启动时会扫描系统所有的NTFS卷的MTF表,将文件名称以一种利于字符串检索的算法形式存储在Everything的index索引数据库中。除此之外,Everything还会在系统运行过程中监控NTFS卷的USN日志文件,假如文件系统中的文件发生了改变,那么Everything就会更新它的index索引数据库。

由于Everything并不索引文件具体内容,并且依赖USN日志来过滤文件更新,因此只需要占用很少的内存和处理器时间。Everything的索引过程和搜索过程非常快速,几乎是一瞬间完成,占用系统资源极低,同时能实时更新索引数据库和搜索结果,这些优点使得在磁盘容量越来越大、用户文件越来越多的情况下广受欢迎。

Everything和Windows内置搜索的区别

Windows内置搜索用的是普通的文件系统遍历查找,比如:FindFirstFile/FindNextFile之类的。当然Windows 7之后的版本也内置带索引的搜索功能,但非常复杂,不仅可以搜索文件名,还可以搜索文件内容,而且适用于任意文件系统。缺点就是需要一个后台服务爬虫不停地对文件系统进行索引,所以非常耗资源。

Everything在搜索时,根本没有遍历文件系统,它检索的是自己组织好的索引数据库,所以搜索速度是飞快的。不过Everything需要管理员权限才能读取USN日志,这会带来安全上的问题。

 

Everyting搜索功能会损伤硬盘吗?

不管是那一款快速搜索软件,想要搜索更快,就需要在遍历后形成索引。这个索引文件需要写在硬盘上,并且会更新,但通常这个索引文件都不会很大。对硬盘的造成的伤害可以忽略不计,它和我们拷贝到硬盘一个同等体积的文件相差并不大。

举个例子:

Everything索引一个全新安装的Windows 10(大约120000个文件)仅需要大约14MB的内存以及不到9MB的硬盘空间,仅需要1秒就可以索引完成。如果是一百万个文件大约需要75MB的内存和45MB的硬盘空间,索引完成大约需要1分钟。

这点损耗对比于Windows内置的搜索来说可谓是微乎其微,Windows内置的搜索不管你用不用,它默认都在工作。

为什么微软不去做一个Everything?

对于专业人士来说,毫无疑问Windows内置的搜索真的糟得一塌糊涂,但Windows本身是为广大的普通用户提供一个通用的使用平台,如果叫普通人去使用布尔运算符、通配符、正则表达式来快速的索引文件反而有点不现实。

所以微软要去权衡全球用户的接受程度,但微软可以提供接口,让开发者去充分发挥想象空间,这就是平台和生态圈的概念了。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值