--- /dev/null
+Return-Path: <jani@nikula.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by olra.theworths.org (Postfix) with ESMTP id C7DCF431FB6\r
+ for <notmuch@notmuchmail.org>; Wed, 22 Feb 2012 05:07:45 -0800 (PST)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+ tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+ by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id Db8mSx74CKpR for <notmuch@notmuchmail.org>;\r
+ Wed, 22 Feb 2012 05:07:42 -0800 (PST)\r
+Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com\r
+ [209.85.216.53]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
+ (No client certificate requested)\r
+ by olra.theworths.org (Postfix) with ESMTPS id E0167431FAE\r
+ for <notmuch@notmuchmail.org>; Wed, 22 Feb 2012 05:07:41 -0800 (PST)\r
+Received: by qafk1 with SMTP id k1so165835qaf.5\r
+ for <notmuch@notmuchmail.org>; Wed, 22 Feb 2012 05:07:40 -0800 (PST)\r
+Received-SPF: pass (google.com: domain of jani@nikula.org designates\r
+ 10.229.115.25 as permitted sender) client-ip=10.229.115.25; \r
+Authentication-Results: mr.google.com;\r
+ spf=pass (google.com: domain of jani@nikula.org\r
+ designates 10.229.115.25 as permitted sender)\r
+ smtp.mail=jani@nikula.org\r
+Received: from mr.google.com ([10.229.115.25])\r
+ by 10.229.115.25 with SMTP id g25mr23000596qcq.27.1329916060286\r
+ (num_hops = 1); Wed, 22 Feb 2012 05:07:40 -0800 (PST)\r
+Received: by 10.229.115.25 with SMTP id g25mr19397953qcq.27.1329916059825;\r
+ Wed, 22 Feb 2012 05:07:39 -0800 (PST)\r
+Received: from localhost (nikula.org. [92.243.24.172])\r
+ by mx.google.com with ESMTPS id\r
+ bd19sm66057395qab.17.2012.02.22.05.07.37\r
+ (version=SSLv3 cipher=OTHER); Wed, 22 Feb 2012 05:07:38 -0800 (PST)\r
+From: Jani Nikula <jani@nikula.org>\r
+To: Jesse Rosenthal <jrosenthal@jhu.edu>, Daniel Schoepe <daniel@schoepe.org>,\r
+ Justus Winter <4winter@informatik.uni-hamburg.de>,\r
+ Philippe LeCavalier <support@plecavalier.com>, notmuch@notmuchmail.org\r
+Subject: Re: nomuch_addresses.py\r
+In-Reply-To: <87boosjgd9.fsf@jhu.edu>\r
+References: <87r4xur3rv.fsf@plc.plecavalier.com>\r
+ <87fweamenf.fsf@schoepe.localhost>\r
+ <20120221091509.8534.59492@thinkbox.jade-hamburg.de>\r
+ <87zkccjnst.fsf@schoepe.localhost> <87boosjgd9.fsf@jhu.edu>\r
+User-Agent: Notmuch/0.11.1+222~ga47a98c (http://notmuchmail.org) Emacs/23.1.1\r
+ (i686-pc-linux-gnu)\r
+Date: Wed, 22 Feb 2012 13:07:35 +0000\r
+Message-ID: <871upn6mp4.fsf@nikula.org>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+X-Gm-Message-State:\r
+ ALoCoQnfaEEiP9S1cSpqJRPUSMty0CZFY0ZzKmPJGWLOt1Ek5pOgoMMAgJNYNnn4eqX28EYTwxaP\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 22 Feb 2012 13:07:45 -0000\r
+\r
+On Tue, 21 Feb 2012 11:33:38 -0500, Jesse Rosenthal <jrosenthal@jhu.edu> wrote:\r
+> On Tue, 21 Feb 2012 14:53:06 +0100, Daniel Schoepe <daniel@schoepe.org> wrote:\r
+> > On Tue, 21 Feb 2012 09:15:09 -0000, Justus Winter <4winter@informatik.uni-hamburg.de> wrote:\r
+> > The reason I mentioned nottoomuch-addresses at all, is that completion\r
+> > itself is _a lot_ faster (at least for me), compared to\r
+> > addrlookup. According to the wiki, notmuch-addresses.py is even slower\r
+> > than addrlookup, so I thought (and still think) that it was worth\r
+> > mentioning. Of course, one could rewrite the database-generation part in\r
+> > python using the bindings, but I personally don't think it's that\r
+> > necessary.\r
+> \r
+> I'm not sure what speed comparisons were being used -- I think it was\r
+> Sebastian comparing vala to python. In any case, using\r
+> notmuch_addresses.py to look up a common prefix ("Jes") on a slowish\r
+> computer takes 0.2 seconds. So I'm not sure if the speed is all that\r
+> much of an issue. It might be a question of cache temperature, though --\r
+> it'll probably take longer the first time you run it. Still, even trying\r
+> something out on a cold cache, it seems to be about a second.\r
+\r
+The speed comparisons between vanilla notmuch_addresses.py and\r
+nottoomuch-addresses.sh are going to be flawed in that they do different\r
+things. It's comparing apples and oranges.\r
+\r
+notmuch_addresses.py looks for matches in the recipients of mails the\r
+user has sent. Nothing else. notmuch_addresses.py filters out multiple\r
+names for one email address using a popularity contest.\r
+\r
+AFAICT nottoomuch-addresses.sh scans all the addresses in all the\r
+mails. It has no logic for filtering out multiple names for one email\r
+address, and just returns all matches.\r
+\r
+Personally I would like to have best of both worlds, and I'm using a\r
+modified notmuch_addresses.py that matches all the mails I have, and\r
+cleans up the duplicate results. Unfortunately that does have a toll on\r
+performance, taking about a second on my system for typical searches,\r
+cache hot, while nottoomuch-addresses.sh takes less than a tenth of a\r
+second. It is enough to be annoying, I'm afraid. Even so, it's not a\r
+fair comparison because notmuch_addresses.py wasn't designed with this\r
+in mind, and nottoomuch-addresses.sh maintains its own database and does\r
+less.\r
+\r
+One just needs to pick the tool that fits the needs best.\r
+\r
+\r
+BR,\r
+Jani.\r