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本身是为广大的普通用户提供一个通用的使用平台,如果叫普通人去使用布尔运算符、通配符、正则表达式来快速的索引文件反而有点不现实。
所以微软要去权衡全球用户的接受程度,但微软可以提供接口,让开发者去充分发挥想象空间,这就是平台和生态圈的概念了。
以上个人浅见,欢迎批评指正。
认同我的看法,请点个赞再走,感谢!
喜欢我的,请关注我,再次感谢!
相比较Windows系统自带的搜索功能,everything堪称搜索界的神器,尤其在电脑里文件多达数万数十万的恐怖数量,但everything仍可做到秒搜,所以这款软件为大部分办公人员所喜爱。
说到everything对硬盘的伤害程度,我们先看看everything的工作原理。
一、everything的工作原理
everything在第一次打开使用的时候,它会扫描整个硬盘,然后建立一个索引数据库,体积大约在2~5M左右,和电脑文件的数量有直接关系,但已经非常小了。
索引数据库建立之后,每次搜索文件,everything就在它的数据库里搜索,而不需要扫描整个文件,这是everything和Windows系统自带搜索的本质区别。
也因此,everything的搜索速度快到令人发指。
二、everything的实际体验
小迷虫特意做了2个测试,一个测试是电脑内置2块硬盘,一个测试是外置2块硬盘,最直观的体验就是速度非常快。
1、everything创建的引索文件特别小
1T硬盘根据包含文件的多少,所创建的索引文件体积,大约在2~5M左右,非常小。
2、搜索时间快的令人发指
一块1T的硬盘内含13万文件,搜索时间在1秒左右,另一块1T硬盘内含100万个文件,搜索时间不到3秒(关于时间也和电脑的配置有关系,每个电脑的时间不尽相同)。
三、everything的优点和缺点
优点:
1、索引体积小;
2、速度快,秒搜;
3、支持正则表达式;
4、可以将everything做成一个小型的 文件服务器,需要一定的技术;
缺点:
1、只能搜索文件名称、日期和大小,不支持搜索文件内容及附加属性;
2、只支持NTFS文件系统,不支持fat32文件系统;
3、无法搜索网上邻居和映射的网盘;
四、everything对硬盘是否有伤害
基于everything的工作原理,everything的每次搜索,并不扫描整个硬盘,而是在它建立的2~5M索引文件库里扫描,所以对硬盘的伤害微乎其微,如果电脑内的文件发生增加或者减少,索引也会跟随实时变化。
如果说和Windows系统自带的搜索相比较,显然everything对硬盘的伤害更小。
前面回答只知其一不知其二,Everything伤硬盘是杞人忧天,相比慢如蜗牛的Windows系统搜索功能,这个小工具其实对硬盘更好,和一般应用程序没啥区别。
Windows平台最快的文件名搜索工具,Everything为什么这么快?因为它与号称世界上最快的磁盘空间分析器WizTree工作原理一样。
WizTree直接读取硬盘主文件表MFT(C:\$MFT是一个特殊隐藏系统文件,用于跟踪所有文件和文件夹的动态变化),以这种方式扫描文件完全绕过了Windows操作系统,从而获得巨大的速度提升。
也就是说,$MFT是所有文件的索引数据库,大小通常在100~200MB之间,Everything、Wiztree这类搜索工具从这个数据库文件查找文件更快,而像Windows全盘搜索那样再翻一遍,其实也只是正常读取硬盘,还远远谈不上伤害。
要说有伤害的,应该是机械硬盘执行多程序时,明明已经出现了卡顿,你还要执行文件搜索任务,此时硬盘必定疯狂读写,忙不过来甚至直接当机。
everything只是一个带有索引数据库的搜索工具,对硬盘的伤害微乎其微。按照现在硬盘的使用寿命,你只管放心用,根本没必要杞人忧天。
1、everything对硬盘伤害微乎其微
everything因为弥补了早年windows搜索慢的毛病,获得了很多人的青睐。但究其软件结构,并不复杂。就是将电脑硬盘的文件进行了索引,但它没有直接去遍历所有文件,而是通过NTFS文件系统本身MFT表和USN日志来对电脑硬盘的文件进行记录和跟踪。既然是这种机制,题主担心它对硬盘的伤害最多也就发生以下几个过程:
①、安装完首次使用,
刚安装完,首次使用前,everything需要对MFT和USN进行一次全面访问,并将所有记录进行索引,写入自己索引数据库。这个倒是对硬盘的写入量稍微有点大,但是也不用太担心。因为一百万的文件也才写入不到50M的索引占用空间,而且还是一次性的。所以,对硬盘也没啥伤害。
②、使用everything进行搜索时
这个时候,它需要访问自己的索引数据库,去查找用户想要找的文件的位置。这里很多不太懂电脑的人会认为,这里需要访问很多记录来比对才能找到想要的记录。其实不然,经过索引的字段可以采用二分法来查找,要在N条记录中精准找到一条记录,只需要log2(N)次对比就可以了。比如:100万条记录,查找只需要对比20次既可以找到。所以,everything在自己的索引数据里查找记录发生的读操作,对硬盘基本没有任何影响。
③、启动everything时
它会对MFT表和USN进行访问一次,并和自己的索引数据库进行对比,发生变化的则进行更新,并记录更新日志。这里,它会对硬盘很小一部分区域进行读操作,有更新则会对硬盘更小一部分区域进行写操作。一台电脑一天文件发生变更的的数量并不多,所以,对硬盘的伤害基本可以忽略不计。日常使用的软件访问硬盘比这个大的多。总之,everything的使用对硬盘伤害微乎其微。相比用windows自带搜索来看,并不会增加伤害,相反,可能还略微减少。
2、相比硬盘的寿命,everything你可以随便使用
前面我们已经了解了everything对硬盘的读写访问其实微乎其微。同时,对于我们现在使用的电脑硬盘来说,这点读写你真的可以随便用。下面我们看看主流硬盘的寿命:
①、机械硬盘HDD
机械硬盘主要由带磁盘片、磁头、机械电机、电路板构成。它的寿命主要是机械部件的磨损。以现在的硬盘技术,如果你让电脑硬盘一天24小时不停得读写,使得电机再不断得高速转动,理论寿命可以达到3-4年。但现实中,我们的电脑硬盘并不需要这么繁忙。扣除睡觉、吃饭、厕所时间,我们一天用电脑多,也就10个小时左右。在这10个小时内,硬盘真正繁忙时间又只有一半左右,也就是一天大概5小时左右硬盘是高负荷的。如果按照这个数据换算,机械硬盘的实际使用寿命可以达到 14-27年。基本陪伴你电脑寿命的终身了。everything在这里面相比就可以随便使用了。
②、固态硬盘SSD
相比机械硬盘,SSD没有机械部件,它的寿命主要是固态盘的闪存介质的充放电次数,也就是读写次数。读影响寿命不大,主要影响的是写入。厂家为了平衡每个数据块写入的次数,会有自动平衡机制,这里不做过多讨论。我们只需要知道厂家是用SSD的终身写入量TBW来做保修的,我们也可以用这个指标来作为SSD的寿命。我们按照三星860PRO闪盘参数来看,250GB容量的盘有150TB的TBW。如果,我们按照每天写入40GB计算(这个普通人都很难达到了),你可以使用10年时间。回头再看那个everything的一点点消耗,基本可以忽略不计。
总结
总之,everything只是一个带索引数据库的搜索工具。我们只管放心使用,不必担忧它对硬盘的伤害。因为,无论是它本身的读写操作来看,还是硬盘寿命来看,它的影响可以忽略不计。
感谢阅读,我是数智风,用经验回答问题,欢迎关注评论。
平时工作中使用Everything比较多,最直观的感受是在根据文件名搜索文件速度非常快,比Windows自带的搜索功能快至少一个数量级。凭借多年的使用经验以及观察它的运行情况,个人猜测它对硬盘的损害可以忽略不计。
没有系统研究过这款软件底层的细节,代码Go通过分析它这么快,来谈谈自己的理解和认识。
首先,搜索速度快是基于优秀的索引目录。Everything的核心技术当属它的搜索算法,通用的做法是内存中建立私有的索引目录。在启动搜索时快速列出输入文件名对应的存放位置。此处隐含的黑科技是文件名模糊匹配,这也是让大家感到使用方便之处。假设你要搜索的文件名是“我要上头条.doc”,你可以输入“我要上头条”,也可以输入“woyaoshangtoutiao”,甚至还可以输入“wystt”。此外,词语模糊预测也很关键,输入“我要上”,给你提示“我要上春晚”、“我要上学”、“我要上头条”等。上述方式都可给用户带来非常棒的体验。
其次,索引目录和匹配规则异步处理是关键。Windows自带的搜索功能是在你输入的条件之后再启动遍历扫描,逐一匹配之后再给出结果。Everything则是后台线程自动捕获文件变动情况,及时更新索引目录和模糊匹配规则。生活中常见的半成品蔬菜与这种情况类似,假设要做出一道美味佳肴,你要摘菜、清洗、炒菜逐步递进,有了半成品直接进入炒菜阶段。
再次,增量处理机制,避免频繁全盘扫描。多线程分区、异步持久化技术尽可能降低全盘扫描次数。索引结果异步缓存至文件可以避免程序重启时全盘扫描。分区可让处理粒度更小,能及时捕获到文件的变化。由此可见,对硬盘的读取的次数有限,谈不上损害。
最后,优秀的产品是经得住市场检验的。“小而美”是对这款产品最好的评价,大家的喜爱是对它最好的肯定。事实上,它对提高工作效率也有不小的帮助。
朋友们,今天你Everything了么?
以上就是关于etp挖矿钱包的问题的全部内容了,希望这些etp挖矿钱包的1点内容能够解答你的疑惑。
正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |