<div class="markdown">
<p dir="auto">Benny,</p>

<p dir="auto">Thanks for letting me know I was right. I'd feel bad if I had steered people wrong.</p>

<p dir="auto">Just for your information, with my set up of about 350000 messages (far less than a third of what Patrick and Steven have). My startup was around 10 minutes, too, like theirs. So, I think it's more about the chunks of data MailMate needs to keep in memory at a time rather than how much data in total.</p>

<p dir="auto">Based on what I saw while trying to get my times down, the main problem was very large folders used as search folders.  I also did not get any benefit from using a search query as my mailbox to search. For example, if I used the search term "all messages but none in "deep archive" in a smart folder it did not cut down the time at all. But, if I made a smart folder with that same query and then used that smart folder by name in all my other smart folders I got a significant time savings.</p>

<p dir="auto">I don't know what database you are using, but many of the better ones have a whole set of "queries" that you use instead of the basic one that are designed to bring in a part of the data at a time and as you use the data releases the memory and rolls in more automatically, thus reducing memory thrash.  I cannot recall the name for those kinds of queries and they are not that easy to use, but may be necessary to resolve these issues. I believe the Apple Developer standard database does have those, but I am not totally certain.</p>

<p dir="auto">-Helen</p>

<p dir="auto">On 6 Feb 2016, at 14:40, Benny Kjær Nielsen wrote:</p>

<blockquote>
<p dir="auto">On 6 Feb 2016, at 22:03, Steven M. Bellovin wrote:</p>

<blockquote>
<p dir="auto">I have 1.4M messages, and while startup takes a while it doesn't take nearly as long as Patrik reports.</p>
</blockquote>

<p dir="auto">I've had reports about this number of messages before, but I'm still surprised it works at all with such a number of messages.</p>

<blockquote>
<p dir="auto">On 6 Feb 2016, at 15:49, Patrik Fältström wrote:</p>

<blockquote>
<p dir="auto">350k email messages is nothing.</p>

<p dir="auto">I have just below 2 million. 12k added each month, approximately.</p>
</blockquote>
</blockquote>

<p dir="auto">I'm even more surprised this works although given the startup time one could claim that it doesn't really work.</p>

<blockquote>
<blockquote>
<p dir="auto">There is something happening at startup that takes very long time. And I am interesting in knowing what happens.</p>
</blockquote>
</blockquote>

<p dir="auto">I'll try to explain further below.</p>

<blockquote>
<blockquote>
<p dir="auto">On 6 Feb 2016, at 19:43, Helen Holzgrafe wrote:</p>

<blockquote>
<blockquote>
<p dir="auto">Why does this work? My educated guess:</p>

<p dir="auto">My guess is that Mailmate somehow must be recreating the contents lists for each smart mailbox on the fly each time it starts up, rather than keeping that as part of its database all the time. Very time consuming at start up, but it does guarantee accuracy.</p>

<p dir="auto">[...]</p>

<p dir="auto">Benny, how close did I come to explaining this problem correctly?</p>
</blockquote>
</blockquote>
</blockquote>
</blockquote>

<p dir="auto">That's very exact. MailMate stores a copy of all headers (and some virtual headers) of all emails and these are used on startup to build <em>all</em> mailboxes. It's not just smart mailboxes. An IMAP mailbox is a query for matches on a virtual header with a specific IMAP location.</p>

<p dir="auto">Everything in MailMate is based on these queries and with more than a million messages then this can be slow on startup. It can also take up a considerable amount of memory.</p>

<p dir="auto">Patrick: Now, 8 minutes is a lot and it could be interesting for me to see where the bottlenecks are for this kind of problem size. You can generate a log for me by pasting these lines in a Terminal window:</p>

<pre><code>defaults write com.freron.MailMate TimersEnabled -bool YES
/Applications/MailMate.app/Contents/MacOS/MailMate
</code></pre>

<p dir="auto">When the launch has finished then quit MailMate (to make MailMate summarize the results) and then send me the Terminal output. Send it off list.</p>

<p dir="auto">(I cannot really promise to make more improvements soon, but there might be some simple things you can change to speed up the launch.)</p>

<p dir="auto">-- <br>
Benny</p>

<hr>

<p dir="auto">mailmate mailing list<br>
<a href="mailto:mailmate@lists.freron.com">mailmate@lists.freron.com</a><br>
<a href="http://lists.freron.com/listinfo/mailmate">http://lists.freron.com/listinfo/mailmate</a></p>
</blockquote>

</div>