mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
7023466ece
This modifies `notmuch-tag-format-tag' to treat the keys of `notmuch-tag-formats' as (anchored) regexps, rather than literal strings. This is clearly more flexible, as it allows for prefix matching, defining a fallback format, etc. This may cause compatibility problems if people have customized `notmuch-tag-formats' to match tags that contain regexp specials, but this seems unlikely. Regular expression matching has quite a performance hit over string lookup, so this also introduces a simple cache from exact tags to formatted strings. The number of unique tags is likely to be quite small, so this cache should have a high hit rate. In addition to eliminating the regexp lookup in the common case, this cache stores fully formatted tags, eliminating the repeated evaluation of potentially expensive, user-specified formatting code. This makes regexp lookup at least as fast as assoc for unformatted tags (e.g., inbox) and *faster* than the current code for formatted tags (e.g., unread): inbox (usec) unread (usec) assoc: 0.4 2.8 regexp: 3.2 7.2 regexp+caching: 0.4 0.4 (Though even at 7.2 usec, tag formatting is not our top bottleneck.) This cache must be explicitly cleared to keep it coherent, so this adds the appropriate clearing calls. |
||
---|---|---|
.. | ||
.gitignore | ||
coolj.el | ||
make-deps.el | ||
Makefile | ||
Makefile.local | ||
notmuch-address.el | ||
notmuch-crypto.el | ||
notmuch-hello.el | ||
notmuch-lib.el | ||
notmuch-logo.png | ||
notmuch-maildir-fcc.el | ||
notmuch-message.el | ||
notmuch-mua.el | ||
notmuch-parser.el | ||
notmuch-print.el | ||
notmuch-query.el | ||
notmuch-show.el | ||
notmuch-tag.el | ||
notmuch-tree.el | ||
notmuch-wash.el | ||
notmuch.el |