Vaadin 8.3.1: Grid performance regression

An upgrade from 8.3.0 to 8.3.1 caused my Grids to take nearly twice as long to render in Chrome. Reverting to 8.3.0 restored normal performance. I note that Teemu Suo-Anttila has done good work in
#10579
, and Michael Benz has confirmed better Grid render performance in his tests. But I found the opposite with 8.3.1. FWIW, I put Grids under tabs in a Tabsheet and observe the render performance when moving from tab to tab.

Environment:
Server version: Apache Tomcat/9.0.5
OS Name: Mac OS X
OS Version: 10.13.3
JVM Version: 9.0.4+11

Hello Steve,

could you post a sample project somewhere where you see this performance drop? Would help me find out the issue and fix that as well. I think that the culprit in this case is most likely the TabSheet that now makes the Grid do something extra or do something twice, but can’t be sure until I have a test case that I can fiddle with a bit.

// Teemu

HI Teemu, I will be pleased to help, and am inclined to think the easiest way to demonstrate would be with my project code itself. I wonder how best to communicate that? I could send an 8.3.0 and 8.3.1 WAR file with source code and a database? Or I could give you access to a staging host where you can run it and inspect with Chrome. I’m not sure I can put together anything small and simple that has the size and grid complexity that would be representative. Can you contact me?
steve.demy (at) shaw.ca
or by phone: +1 (250) 216-2564

An update: Your discussions [here]
(https://vaadin.com/forum/thread/16993311/17007335) have almost certainly solved this problem for me. I tested 8.3.0 vs. 8.3.1 comparing grid rendering times when swapping grids under a tabsheet. Here are the normalized results

With footers:

  • 8.3.0 – 100% (base case)
  • 8.3.1 – 186% (almost twice the time - probably twice the time minus Teemu’s improvements)

Without footers:

  • 8.3.0 – 51% (twice as fast as with footers)
  • 8.3.1 – 34% (faster still, somewhat better than expected)

Conclusion: The problem is caused by the footers, made more apparent by 8.3.1 and my use of tabsheets. I very much look forward to 8.3.3 to find out if it performs better performance with footers in place.

8.3.3 delivers the fastest initial Grid rendering in a long time - possibly since Table. The 8.3.3 footer fix combined with the 8.3.1 improvement have made grids render at g speeds. Thanks to everyone involved in making this happen.