Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

Search blocks app (is nor asynchronous)

#2361

Steps to reproduce:

  1. Enter text in search field
  2. Press Enter

Actual result:

  1. Circular rainbow cursor is displayed
  2. MailMate is not responsive for several seconds

Expected result:

  1. Search-request row (Message contains "…") is displayed instantly
  2. Pane with list of messages is empty
  3. There is some indicator which tells, that search is in progress
  4. App is responsive all the time

Expected solution: search initialization happens in background thread, sends status/progress notifications/messages to ui-thread. No heavy work happens in UI thread

Reported by Alexey Zakhlestin · July 9th, 2019 @ 09:30 AM

State: bluesky
Milestone: none
Assigned to: benny benny

Activity

  1. benny
    benny
    • State changed from new to bluesky

    In principle, I agree, but the nature of MailMate is that basically everything is a search (even an IMAP mailbox in MailMate is based on an internal search for the emails belonging to that mailbox). In other words, most parts of MailMate require searches to be near instantaneous. Some things could/should be more asynchronous, but my time would actually be better spent on optimizing searches in general (which is always on my todo lists).

    I assume you have quite a lot of emails in MailMate. One way to reduce search time is to setup a smart mailbox for the emails you most often search and then use the popup menu in the toolbar search field to limit default searches to happen in that mailbox.

    (Note that I'm not saying that I won't make anything asynchronous and if it was a quick fix then I would certainly do that for the toolbar search field. My point is just that the main problem is that the search is slow for large message stores. You would still have to wait for the result if it was happening asynchronously.)

    August 1st, 2019 @ 07:51 AM

  2. Alexey Zakhlestin
    Alexey Zakhlestin

    Thanks benny,

    I understand that "asynchronous" wouldn't make things faster. But it will definitely make things smoother and lead to much better UX.

    Overhead of passing data between threads is negligible in comparison to actual search process, so executing search on the main thread doesn't really buy you any performance either.

    I also understand that past architectural choices could have made such change non-trivial (I have 20 years of software architectural choices myself) :)

    August 1st, 2019 @ 11:52 AM

  3. benny
    benny

    I didn't mean to say that it bought me any performance, but changing it to be asynchronous would currently be very non-trivial :)

    August 1st, 2019 @ 12:12 PM

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.