Performance

為什麼 updatedb 程序執行得這麼快?

  • January 3, 2019

通常,當我有程序正在執行全盤掃描並檢查系統中的所有文件時,它們需要很長時間才能執行。相比之下,為什麼 updatedb 執行得這麼快?

答案取決於locate您使用的版本,但很有可能它是mlocate,它updatedb通過避免進行全盤掃描而快速執行:

mlocate 是一個定位/更新數據庫實現。’m’ 代表“合併”:updatedb 重用現有數據庫以避免重新讀取大部分文件系統,這使得 updatedb 更快並且不會過多地破壞系統記憶體。

(數據庫儲存每個目錄的時間戳,ctimemtime,以較新的為準。)

與 , 的大多數實現一樣updatedbmlocate它也將跳過配置為忽略的文件系統和路徑。預設情況下沒有mlocate’s ,但發行版通常提供updatedb.conf忽略網路文件系統、虛擬文件系統等的基本配置(例如,參見Debian 的配置文件;這是 Debian 中的標準做法,因此 GNU 的updatedb配置類似)。

引用自:https://unix.stackexchange.com/questions/492044