Mutt/Neomutt is much more mature and has more features and better performance. (fantastic threads support, fast and very flexible filtering, etc.)
Aerc is very new and written in Go. I tested it on my 100 thousnand mail ARM linux mailing list archive, accessed via localhost dovecot IMAP server, to see the best case performance, but it doesn't look good, atm.
aerc doesn't download all of your message headers upfront - mutt does. All that time you spend waiting for mutt to open your inbox is downloading all of the data that aerc is downloading as you scroll. Also, you can scroll faster with ^d/^u, half a page at a time, or pgup/pgdown, for a full page at a time.
Yes, aerc is not yet as featureful or mature as mutt, but it definitely does not have inferior performance.
I use POP3, and only wait for mutt when changing to a folder (4s/100k mails). Then everything is basically instantaneous.
But yeah, I don't know about mutt IMAP performance, as I never used it. I've only configured a local IMAP server over my maildir to be able to try aerc. I have no clue why aerc is taking 100-200ms to load a single message (as you see in the video) from the localhost. Maybe naggle (is it even used on localhost)?
Also, I'm not sure how you'd make threads work while loading message list only partially. So full load of the message list is needed anyway (at least once and cache it locally). It's not some failing. I want thread that started 5 months ago to pop forward if new message is posted to it.
EDIT: Faster scrolling loads multiple messages at once faster. Maybe aerc can take into account that user may have scrolled past more than one message in the time the previous message finished loading.
I'm guessing the main problem is that I can't cancel an IMAP request once it goes out. When you scroll down, one at a time, through all of the messages like that, I have to wait for ones that scrolled offscreen long ago before I can read out the details for the ones onscreen now. Adding an option to fetch all headers when opening a folder might be wise, or just fetching the offscreen headers in the background while idle. Another thing some email clients do is open several IMAP connections, but pooling connections to implement cancellation could get icky.
aerc will also support maildir before 1.0, which doesn't have the same issue, and will be at least as fast as mutt.
>Also, I'm not sure how you'd make threads work while loading message list only partially. So full load of the message list is needed anyway (at least once and cache it locally). It's not some failing. I want thread that started 5 months ago to pop forward if new message is posted to it.
IMAP has a thread extension I intend to put to good use for this purpose.
Aerc is very new and written in Go. I tested it on my 100 thousnand mail ARM linux mailing list archive, accessed via localhost dovecot IMAP server, to see the best case performance, but it doesn't look good, atm.
It looks like this when I scroll through the archive: https://megous.com/dl/tmp/cjitwkaxpsypgcfdvncr.mp4
It's not really comparable to mutt, yet. The performance is slow, and it doesn't support threads, which is a must for MUA.