Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    ListGrid performance with many columns

    We use ListGrid to build a reporting tool where users define the layout and content of the grid. Some users want to build reports with tons of columns (200-600). Even with data-binding and really small page size (10), grids of that size have a lot of GUI performance issues. Any significant scrolling can cause the render to stutter, and sometimes the page freezes.

    I realize the this use case is a bit counter-architectural, and the custom formatting we do is definitely part of the issue. But I was wondering if there are any best practices to maximize performance on really wide grids. Are there any LIstGrid settings I can adjust? We would also be interested in sponsoring a feature so databinding can page across columns, not just rows.

    Thanks,
    John

    #2
    The default behavior is to horizontally draw incrementally. You may have forced that off with showAllColumns:true?

    Certain other settings will also force showAllColumns to true (each is doc'd as doing this).

    So your steps are:

    1. figure out if horizontal rendering is even active (should be obvious, but one way is to see whether formatters are being called for out-of-viewport columns, such as the last column)

    2. once showAllColumns has been confirmed to be on, run in-browser profiling tools (such as Chrome's) to find the bottlenecks. Since we've tested with 1000-column grids, it's likely that various overrides you've made are very slow, rather than the grid itself. The profiling information will show you what's most important to tune.

    Comment


      #3
      Thank you! showAllColumns was on, and it didn't really need to be. I think our overrides are the bottleneck, but their performance is OK when showAllColumns is false. I turned it off and that resolved the scrolling issues.

      Comment


        #4
        Good to hear, thanks for closing the loop.

        We would still recommend a quick look with a profiler, as you often find something that is really easy to improve. Just grab the lowest-hanging-fruit and move on.

        Comment

        Working...
        X