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

Mitigate performance impacts of file selection and UI updates during processing

XMLWordPrintable

      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

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

              Created:
              Updated:
              Resolved:

                Version Package
                2.4.0b1