Uploaded image for project: 'Sourcetree for Windows'
  1. Sourcetree for Windows
  2. SRCTREEWIN-328

WPF performance issues with large collections with custom styles

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Fixed
    • 0.9.0.4b
    • None
    • None
    • Our product teams collect and evaluate feedback from a number of different sources. To learn more about how we use customer feedback in the planning process, check out our new feature policy.

    Description

      WPF is very smart in that you can give it a collection of objects and implement styles to render them to your needs. However it seems that when these collections get very large, their efficiency suffers and particularly in the diff view this can cause performance issues, exacerbated by the fact that WPF always runs in the main thread (so even though we're doing all our work in background threads to avoid stalling the UI, WPF can still cause stalls in the user experience).

      Investigate ways to improve this. Virtualisation can help, but has drawbacks too (we have used it in places but have had to use shims to keep things like selections working consistently). A more extreme solution might be to just manually render the diff view instead of using WPF's stylings to do it (quite a bit of work). For the moment the workarounds keep things mostly acceptable (limiting diff size for added/removed/untracked files) but there are edge cases which are noticably slow, like very large diffs caused by line ending conversions or automated tools.

      See https://jira.atlassian.com/browse/SRCTREEWIN-310 for one instance of this.

      Attachments

        Issue Links

          Activity

            People

              sstreeting Steve Streeting (Inactive)
              sstreeting Steve Streeting (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: