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