Use a single unified pass to fetch scalar message metadata.
authorAustin Clements <amdragon@mit.edu>
Sat, 27 Nov 2010 04:34:29 +0000 (23:34 -0500)
committerAustin Clements <amdragon@mit.edu>
Mon, 21 Mar 2011 06:45:18 +0000 (02:45 -0400)
commitd9b0ae918fd9d535e819b8859eca579002146661
tree4e48a8ff16c9e206eb69f04f6d2a7df9369a46d5
parent74bc93f02d5061e0eb360571c2664541ae5bd98b
Use a single unified pass to fetch scalar message metadata.

This performs a single pass over a message's term list to fetch the
thread ID, message ID, and reply-to, rather than requiring a pass for
each.  Xapian decompresses the term list anew for each iteration, so
this reduces the amount of time spent decompressing message metadata.

This reduces my inbox search from 3.102 seconds to 2.555 seconds (1.2X
faster).
lib/message.cc