為何windows自帶的文件搜索這麼慢,而Everything的這麼快?


因為Everything不搜索文件內容,就可以使用NTFS的後門來遍歷硬碟。


Windows搜索為什麼慢我不知道,好像現在windows搜索可以檢索所有文件內容,功能強大。

Everything並沒有全部逐一掃描我們硬碟上的文件,而是通過讀取NTFS文件系統中的USN日誌來完成的,只能檢索文件名。

  USN是系統日誌的一部分,是Update Service Number Journal or Change Journal的英文縮寫,直譯為「更新序列號」,是對NTFS卷里所修改過的信息進行相關記錄的功能。當年微軟發布Windows 2000時,建立NTFS 5.0的同時,加入了一些新功能和改進了舊版本的文件系統,,它可以在分區中設置監視更改的文件和目錄的數量,記錄下監視對象修改時間和修改內容。當這個功能啟用時,對於每一個NTFS卷,當發生有關添加、刪除和修改文件的信息時,NTFS都使用USN日誌記錄下來。

  USN日誌的工作方式,相對來說很簡單,所以非常的高效。它開始的時候是一個空文件,包括NTFS每個卷的信息。每當NTFS卷有改變的時候,所改變的信息會馬上被添加到這個文件里。這其中,每條修改的記錄都使用特定符號來標識為日誌形式,也就是USN日誌。每條日誌,記錄了包括文件名、文件信息做出的改變,日誌里包括發生了什麼變化(添加、刪除或其他操作)。

  USN日誌相當於一本書的索引,當然書裡面內容發生添加、修改或刪除的時候,USN日誌會記錄下來何時做了修改,並使用特定序列號來標識,但它並不會記錄裡面具體修改了什麼東西,所以索引文件很小。而當你想查找某一篇文章時,你就不用一頁一頁去翻書,可以直接通過查找USN日誌(也就是建立的索引)就知道這篇文章是否存在。

綜上: NTFS文件系統中的USN日誌,是一項系統管理功能,能夠記錄卷上文件和文件夾的所有更改。「Everything」的搜索功能也是基於這個日誌,只是在索引當中根據文件名過濾出符合條件的文件或文件夾故而十分迅速。隨著版本的優化,其速度也到了目前秒開的水平,確實是Windows的文件名檢索利器。


取消勾選【不使用索引】,再取消勾選【始終搜索文件名和內容】,然後你再用Windows自帶搜索試試。


先以everything的方式搜索一遍,再以任務管理器的方式搜索一遍。既滿足了大部分用戶快速文件名的需求,對內容搜索需求的用戶影響又非常低。

為什麼微軟沒有這樣做?此中必有深意,豈是我這等屁民可以窺知。


我就不說AS編譯時EveryThing佔CPU是多麼的感人了...還有Window Defender


你們呀,搜索的時候會提示你選擇索引,你用索引試試,一點都不慢好嗎?這就好比資料庫,數據多了加索引肯定快啊!小白。勿噴!


推薦閱讀:

請問如何在win7-64位下安裝雙系統win8.1-64位?
為什麼許多軟體在win7/win8系統下需要佔用那麼多的系統磁碟空間?
就編程而言,OS X 哪些地方比 Windows 好用?
win7系統C盤越來越小,怎麼清理?
Windows Update為什麼需要在關機前重啟後分別進行配置?並且無法自行中斷?

TAG:MicrosoftWindows | Windows7 |