Constant processing when scrolling in diff view in File Status and History.

XMLWordPrintable

    • Type: Bug
    • Resolution: Unresolved
    • Priority: High
    • None
    • Affects Version/s: 3.4.31
    • Component/s: Git
    • None
    • Severity 2 - Major

      I don't know if the specific issue has been posted before, because there are a lot of performance tickets and I haven't found a perfect match for this issue.

      Scrolling the diff view becomes increasingly slower the more changes there are in the file (Workspace -> File Status || History) For larger files this gets ridiculously slow. IMHO this is either a bug or a design issue.

      I have a bunch of .js/.jsx files in my git versioned project, some with few and some with lots of changes.  (I.d.k. if the file type is important because the same issue happens with my c++ projects). 

      Selecting a file in the "Staged files" or "Unstaged files" section leads to an update of the diff view to the right. As soon as this view gets a scrollbar the UI gets increasingly slow.

      I have the feeling that there is some potentially unnecessary processing going on during  the scrolling, because the CPU usage indicator jumps significantly each time the scrollbar is ued, which I think should not happen.

      The changes (hunks) with all meta data like hunk number, lines etc. should be known as static information for the entire file after some initial processing. After that its just a matter of showing this information to the user. There should only ever be an update to that static information when the file changes (track file hashes or git info) or when the user interacts with the shown elements like staging/unstaging/discarding hunks/lines. Only in these instances there should be an update that involves "heavy" processing. All the other times the Ui just needs to be updated to the shown static content. 

      So why should this ever be slow?

              Assignee:
              Unassigned
              Reporter:
              Matthias Noll
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Created:
                Updated: