mlocate
About
mlocate is a new locate implementation. The 'm' stands for "merging":
updatedb reuses the existing database to avoid rereading most of the file
system, which makes updatedb faster and does not trash the system caches
as much.
The locate(1) utility is intended to be completely compatible to slocate.
It also attempts to be compatible to GNU locate, when it does not conflict
with slocate compatibility.
Availability
mlocate tarballs are available at fedorahosted.org.
Current version: 0.22.1
mlocate is also included in Fedora Core 6 and later.
Bugs
Please consider reporting the bug to your distribution's bug tracking
system.
Otherwise, report bugs at https://fedorahosted.org/mlocate/. Bug reports
with patches are especially welcome.
Performance
These measurements were obtained with mlocate-0.12 and slocate-2.7. Each
time, a computer was booted into single-user mode and after one updatedb
run data was collected using slabtop and free. The measurement method is
admittedly crude, but I think the numbers represent reality quite well.
Run: real user system dentry inode buffers cached
slocate 1m32.84 0.704 2.045 134337 170778 85972 8268
mlocate, 1st 1m11.65 0.214 0.908 17766 15642 78452 21340
mlocate, 2nd 37.64 0.105 0.289 17776 15639 33996 21336
real, user, system
as reported by time
dentry, inode
number of active objects in dentrycache and ext3inode_cache, as reported
by slabtop
buffers, cached
size of disk buffers and page cache, as reported by free
mlocate has two rows because the first run needs to scan the whole file
system, while the subsequent runs can reuse most of the original database.