Serious discussion about Vaadin 7.4.4 performance compared to 6.8.13

Hi everyone!

We use 7.x.x versions since 7.0.2 is out, and we noticed that performance in complex UIs is bad.
Now we are not supporting IE8, but we have similar problems with Table performance in Chrome and Firefox.

I’ve tested Table with many columns in some nested VerticalLayouts and I see that 7.4.4 2x ! slower than 6.8.13.

Test: (30 columns, 60 rows) rendering in 5 hierarchical VerticalLayouts.

My test applications:

Vaadin 7.4.4 :
https://github.com/Haulmont/vaadin7-performance

Vaadin 6.8.13 :
https://github.com/Haulmont/vaadin6-performance

Rough processing time:

Vaadin 6 ~ 200 ms
Vaadin 7.4.4 ~ 450 ms

How can we increase speed of rendering ? Do you have any plans to fix Table rendering performance ?
Old ticket about IE8 performance:
https://dev.vaadin.com/ticket/12797

Interesting…
How about the grid does it cure the pain as “promised” in the ticket?

I tried Grid and it slower than Table, it renders in ~ 600 ms.

My test project with Table/Grid comparison on 7.4.4:
https://github.com/Haulmont/vaadin7-grid-performance

I’ve tested this app in Chrome:
Grid paints fully (all rows) ~ 600 ms
Table ~ 350 ms

All test projects - Simple maven App with jetty, just open it your favorite IDE and run > mvn package jetty:run

table v6:
http://localhost:8086

table v7:
http://localhost:8087

table+grid:
http://localhost:18087

I’ve posted ticket
https://dev.vaadin.com/ticket/17679#ticket

Any comments are welcome!

Thanks. Core team will take a look at this - Grid definitely should be faster.

I have the impression that with v7 on Firefox the performance hit of enabling Firebug has increased compared to v6.
I don’t know about Chrome, but the analysis tool itself may be influencing the results.

I haven’t used debug tools such as Firebug, I see processing time in Vaadin debug console (with url parameter ?debug).

What I said about analysis tools may also be valid for the (different versions of the) debug console and the profiler.
The Javadoc for the Profiler class states “Lightweight profiling tool that can be used to collect profiling data with zero overhead unless enabled.”, so I assume it may cause some overhead.
I don’t know, however, if it is significant.