Dirk-Jan C. Binnema <[email protected]> writes:

> On Monday Jul 21 2014, Jakub Sitnicki wrote:
>
>> Hi,
>>
>> Since commit c7b28419abd9 ("* bugfix for issue 164" [1]) I have
>> experienced a slowdown when displaying messages in threaded format.
>>
>> Has anyone else also noticed that showing threads takes now longer
>> than before? (Mentioned change was merged on 2014-03-20.)
>>
>> On a 16k maildir, using mu from master @ c7b2841, threading and
>> sorting by date takes:
>>
>> $ perf stat --event=task-clock --repeat=10 -- \
>>   mu find maildir:/INBOX -n 1 -t > /dev/null
>>
>>  Performance counter stats for 'mu find maildir:/INBOX -n 1 -t' (10 runs):
>>
>>        5242.073458      task-clock (msec)         #    1.000 CPUs utilized   
>>          ( +-  0.50% )
>>
>>        5.244428658 seconds time elapsed                                      
>>     ( +-  0.50% )
>>
>> While one commit before that (master @ bd9d99a) it takes only:
>>
>> $ perf stat --event=task-clock --repeat=10 -- \
>>   mu find maildir:/INBOX -n 1 -t > /dev/null
>>
>>  Performance counter stats for 'mu find maildir:/INBOX -n 1 -t' (10 runs):
>>
>>        1231.761588      task-clock (msec)         #    0.996 CPUs utilized   
>>          ( +-  1.02% )
>>
>>        1.236209133 seconds time elapsed                                      
>>     ( +-  1.08% )
>>
>> I didn't see any way to make the current iterative solution any faster
>> so I went for it and rewrote it from scratch. Changes are here:
>>
>>   https://github.com/jsitnicki/mu.git thread-sort [2]
>>
>> My goal was to get the thread sorting performance back to what it was
>> before commit c7b2841 and to keep the behavior as is.
>>
>> After the rewrite the time it takes to sort threads has dropped down
>> back to a level that I'm happy with:
>>
>> $ perf stat --event=task-clock --repeat=10 -- \
>>   mu find maildir:/INBOX -n 1 -t > /dev/null
>>
>>  Performance counter stats for 'mu find maildir:/INBOX -n 1 -t' (10 runs):
>>
>>        1459.883316      task-clock (msec)         #    0.998 CPUs utilized   
>>          ( +-  0.72% )
>>
>>        1.462540088 seconds time elapsed                                      
>>     ( +-  0.77% )
>>
>> On the way, I've extended mu's test suite for threads to ensure that
>> that I haven't broken the behavior that commit c7b2841 introduced. So
>> far everything have been working as expected for me.
>>
>> Would such an optimization be of interest to any other mu/mu4e users?
>> If so, then I've submitted a pull request:
>>
>>   https://github.com/djcb/mu/pull/455
>>
>> Looking forward to comments and feedback.
>>
>> Cheers,
>> Jakub
>>
>> [1] https://github.com/djcb/mu/commit/c7b28419abd9
>>
>> [2] https://github.com/jsitnicki/mu/tree/thread-sort
>
>
> Wow -- that's quite some improvement -- thanks for looking into
> this! I'll give it a spin.

My pleasure. Thanks for creating mu & mu4e.

Please let me know if anything doesn't work as expected or if any part
of the changes need some polishing.

Cheers,
Jakub

>
> Thanks,
> Dirk.
>
>
> -- 
> Dirk-Jan C. Binnema                  Helsinki, Finland
> e:[email protected]           w:www.djcbsoftware.nl
> pgp: D09C E664 897D 7D39 5047 A178 E96A C7A1 017D DA3C

-- 
You received this message because you are subscribed to the Google Groups 
"mu-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to