No announcement yet.
  • 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.


    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.


      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.


        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.