In every release of the our product, the one thing that we consistently focus on is how to improve performance. This release is no different. We carefully profile our code to eliminate redundancies, and optimize our routines to make our code more performant. Over the years, this has made our product extremely well performant in most cases, but in we continue to make it better.
In this release, we have targeted one area in particular – scrolling. Now this does not make a lot of difference if your grid does not occupy a large percentage of your screen. However, if you have grids that span across your entire screen, the time it takes to paint that many cells as you scroll is sometimes more than ideal. So, we have introduced a new property, enableStyleCache – this will cache a number of style calculations required to render each cell. This will not work if you have grids that use col spans or row spans, or some other edge cases, so switch it back to false if you see rendering issues. But for the most common scenarios, setting this property to true should get you atleast a 50% improvement in scrolling performance, as well as a slight improvement in initial rendering performance.
This can be demonstrated by some hard numbers like shown in the screenshot below.
As you can see, the amount of work being done as you scroll has been significantly reduced because of the caching introduced.
That said, many times performance issues arise due to very specific configuration settings that we may not have encountered in our settings. So if you run into any of this, please don’t hesitate to get back to us if you notice any other areas that could use performance improvements – please send us a sample that we can run and profile to understand the issues better a'nd help you achieve better performance out of the product.
Note that this behavior can be disabled by setting enableStyleCache="false" (The default is true). If you observe any rendering issues, please send us a test case, and you can disable this new performance enhancement by setting the enableStyleCache back to false.