Performance為什麼
為什麼 updatedb
程序執行得這麼快?
通常,當我有程序正在執行全盤掃描並檢查系統中的所有文件時,它們需要很長時間才能執行。相比之下,為什麼 updatedb 執行得這麼快?
答案取決於
locate
您使用的版本,但很有可能它是mlocate
,它updatedb
通過避免進行全盤掃描而快速執行:mlocate 是一個定位/更新數據庫實現。’m’ 代表“合併”:updatedb 重用現有數據庫以避免重新讀取大部分文件系統,這使得 updatedb 更快並且不會過多地破壞系統記憶體。
(數據庫儲存每個目錄的時間戳,
ctime
或mtime
,以較新的為準。)與 , 的大多數實現一樣
updatedb
,mlocate
它也將跳過配置為忽略的文件系統和路徑。預設情況下沒有mlocate
’s ,但發行版通常提供updatedb.conf
忽略網路文件系統、虛擬文件系統等的基本配置(例如,參見Debian 的配置文件;這是 Debian 中的標準做法,因此 GNU 的updatedb
配置類似)。