Vaadin 7.0.3 Performance vs. Vaadin 6

Hey all,

I recently migrated my complex Vaadin 6.8.2 App to Vaadin 7.0.3 and noticed that the performance got worse and the Browser needs to process more JSON characters. To observe this, i started my old and my new app in the same browser(Chrome) and turned on the debug window. Then i loaded the same page and compared the loading times. Here are my results:

Server visit:
6: 48ms
7: 41ms
JSON parsing:
both 1ms
Total layout phase time:
6: N/A
7: 112ms
Processing time:
6: 184ms for 18702 JSON characters
7: 341ms for 25140 JSON characters

Can these problems come from my Migration to 7 or are they Performance issues, 7.0.3 is still facing?

PS: The older(quicker) version is running on a server while the 7.0.3 version is running on localhost through eclipse. If that makes a difference.

PPS: I currently made another test where i launched both apps from the same tomcat and then checked the debug window. Although the performance was slightly more similar (7.0.3 was still a few ms slower) i again observed that in the 6.8.2 version less JSON characters get processed in a shorter amount of time

Regards,
M.R.

In some scenarios the client side rendering performance of Vaadin 6 is worse than Vaadin 7 and in others the other way around. Vaadin 7.0.0 was considerably slower than the latest 6.8 versions in many situations, but the later 7.0.x maintenance versions already improved the situation considerably.

It seems you are interested in the initial page load as you see visible differences there and it is easy to measure (and every user encounters it), but it might well be that e.g. for some UI updates the difference goes the other way around.

In Vaadin 6 we were in a way in a dead end where we would not have been able to make significant improvements at least to the layouting phase due to the way layouts happened (a complex interaction between the compiled JavaScript in Vaadin and other parts of how browsers work, with many reflows interrupting layout calculations made in JavaScript etc).

We redesigned both the communication layer between the client and the server and layouting on the client side almost completely in Vaadin 7. This makes it possible for us to improve the situation by optimizing our code that is compiled into JavaScript. Previously, frequent reflows and other factors often blocked us from doing so. We will continue to optimize the client side performance of Vaadin until we are satisfied with it.

Also some parts of the communication framework performance were already improved in 7.0.x maintenance versions and we’ll work on improving it further.

Note that while there is some correlation, performance on the client side is a very complicated thing and the raw size of the JSON message is only one very small factor affecting it. As for the measurements, note also that Vaadin 6 does not keep track e.g. of the layout time separately and there are also some other differences in how the different versions time operations on the client side. Nevertheless, the total sums give a more or less consistent picture of current performance.

Thank you for your reply.

I already notice that the current vaadin 7 versions has a better performance then the initial release and i’m happy to hear that you are still working on improving this performance as time goes on.

Keep up the good work,
M.R.