Uploaded image for project: 'Picard'
  1. Picard
  2. PICARD-1831

Mitigate performance impacts of file selection and UI updates during processing

    XMLWordPrintable

    Details

      Description

      During processing, if the set of selected files with `n` files change (usually in form of removal of one selected item that is moved to a different section, either album or cluster), a number `n-1` of checks and updates are executed. These checks are caused by MainPanel._view_update_selection, as detailed in #1543 (comment) .

      The already existing `_ignore_selection_changes`, that skips the `_view_update_selection` check, is used to mitigate that issue, ignoring selection changes during moves.

      The other mitigation reduces explicit UI updates by removing `if self.isSelected(): [...]` code blocks of all `update()` calls of every class in `itemviews.py`. This delays screen updates of individual changes, but reduces the amount of calls to draw, which speed up operations such as saving.

      The overall results are faster moves (clustering, tagging, lookup, manual move) and no slowdown during operations (move, save, etc) due to selecting files.

      Related performance problems have been reported: here, here, here

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              gabrielcarvfer Gabriel Ferreira
              Reporter:
              gabrielcarvfer Gabriel Ferreira
              Votes:
              1 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Packages

                  Version Package
                  2.4.0b1