RedHat’s Matthias Clasen came up with the idea of caching the MIME information provided by the Shared MIME database (the list of MIME type aliases, subclass information, the glob patterns, the magic patterns and the XML namespaces) in a mmapable file today. With his attempt, there’ll be one cache file (
mime directory, e.g. on most Linux systems, this will be
while on for example FreeBSD, this will be
(both with default
$XDG_DATA_DIRS settings). He also provides patches for both
xdgmime (the MIME implementation used by
The general idea is good, and the implementation looks good too. We should consider using the cache for Thunar as well. My major concern about this currently is the bad data locality with many
mime.cache files (which should only happen if the admin is on crack) and the probably reduced performance due to the big endian to little endian conversions (we need a benchmark here to decide if it’s really worth to spend another thought on this conversion). If we’d adopt this idea for Thunar, we could further reduce startup time, as the process would not need to parse the MIME database first, and it would reduce the memory overhead, tho this is less critical in case of Thunar, since all windows (and the desktop background) run in the same process space and thereby share the MIME database.
Anyways, it’s nice to see some useful activity on the
xdg mailinglist again, after all this discuss it to death-threads about D-VFS and gconf.
Edit: Additional notes can be found in this mail.