Communication performance between server and client side

Hi all,

We are migrating a swing framework to a full web one and we adopted VAADIN as a WEB library. Basically, the framwork relies on a huge communication between model and view components. An example of this, that when typing in a text zone, the typed text is checked against a model difinition so each typed character is communicated to the model and check if it is a valid one and that’s the way how we make integer, date and time fields.

Passing this to a vaadin application, we faced a big application performance problem since the client and server side are always communicating with each other to check inputs and states.

A concrete example of this, is the navigation between input zones. Unlike other application, pressing TAB key is more than passing the focus to the next input zone. The content of the zone to be quit must be validated before. So we perform the following steps :

  1. Communicate the value of the input zone to its model in the server side using the VAADIN communication mechanism.
  2. The input zone (client side) fires a goto next field event using a server RPC communication.
  3. The server side model gets the fired event and perform some validation on the communicated text in the first step.
  4. The server side model decides the next input to be focused if the input content is valid (otherwise an exception is raised).
  5. The new focused field in the model will contact his client side part using the RPC mechanism and tell him to get the focus.
  6. The client side gets the RPC order and gain the focus by calling #setFocus(true).

The hole sequence is terminated by a call of the UI#push() to get the client side notified.

This mechanism seems to not be very performant since it bahaves randomly in execution and the hole sequence can take between ~ 50 ms and ~300 ms. But this not acceptable!!! we cannot wait ~300ms to pass from one input zone to another. Looking to debug console, we did not find something special and all communication phases takes ~1ms to ~ 5ms to perform.

It seems that the the big percentage of the time is passed between when the communication order is fired (UI#push) and when it is really executed in the server side.

Is there any way to enhance the communication mechanism perfoemance in a way that we do not waste much time as we had in the described case ?

Otherwise, is there a better way to perform the steps described above.

Best regards

yes , i face this problem also~~pls vaadin offical team to provide enhancement

The latencies that you describe sound quite long to me, especially if you are using push connection and websocket communication. Can you show what is the reported communicaiton mechanism? You can see that with the debug dialog (opened with ?debug parameter). Using it you can probably also track whether the latency goes into rendering on the client or for actual communication (and server side execution). If rendering takes a lot of time, then there might be something in the UI code that forces many components to be redrawn.

BTW. Is there some reason why you are usign the “manual” push mode?

cheers,
matti

Hi,

Thanks for your reply. Below is what is happening (in debug console) when press TAB key to fire the navigation to the next text box :



First sending text value to server side



and firing the gotoNextField action which will perform some calculation on the server side. These calculation take ~ 5 ms on the server side.


Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.communication.AtmospherePushConnection
INFO: Sending push message: {“csrfToken”:“b57e704c-d46f-4fd8-8a88-e2857e86f02e”,“rpc”:[[“260”,“org.kopi.vaadin.addons.client.field.TextChangeServerRpc”,“onTextChange”,[“myusername”]
],[“260”,“org.kopi.vaadin.addons.client.field.TextFieldServerRpc”,“gotoNextField”,
]],“syncId”:8} 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.communication.AtmospherePushConnection
INFO: Received push message: for(;;);[{“syncId”: 9, “changes” :
, “state”:{“260”:{“text”:“myusername”}}, “types”:{“260”:“17”}, “hierarchy”:{“260”:}, “rpc” :
, “meta” : {“async”:true}, “resources” : {}, “timings”:[997, 0]
}] 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: JSON parsing took 0ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling message from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling resources from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling type inheritance map from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling type mappings from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling resource dependencies 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling meta information 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Creating connectors (if needed) 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Updating connector states 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling locales 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Updating connector hierarchy 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Running @DelegateToWidget 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Sending state change events 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Passing UIDL to Vaadin 6 style connectors 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Performing server to client RPC calls 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Unregistered 0 connectors 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: handleUIDLMessage: 25 ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Starting layout phase 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Measured 0 non connector elements 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: No more changes in pass 1 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Total layout phase time: 13ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Processing time was 50ms for 189 characters of JSON 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Referenced paintables: 294 89557B2BBE9960A0183163C747A77433.cache.js:22032



The server side will first disable all available actions on the formular (this will disable some buttons on the toolbar)


Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.communication.AtmospherePushConnection
INFO: Received push message: for(;;);[{“syncId”: 10, “changes” :
, “state”:{“244”:{“enabled”:false},“245”:{“enabled”:false},“246”:{“enabled”:false},“247”:{“enabled”:false},“248”:{“enabled”:false},“249”:{“enabled”:false},“250”:{“enabled”:false}}, “types”:{“244”:“16”,“245”:“16”,“246”:“16”,“247”:“16”,“248”:“16”,“249”:“16”,“250”:“16”}, “hierarchy”:{“244”:,“245”:
,“246”:,“247”:
,“248”:,“249”:
,“250”:}, “rpc” :
, “meta” : {}, “resources” : {}, “timings”:[997, 0]
}] 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: JSON parsing took 0ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling message from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling resources from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling type inheritance map from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling type mappings from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling resource dependencies 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling meta information 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Creating connectors (if needed) 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Updating connector states 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling locales 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Updating connector hierarchy 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Running @DelegateToWidget 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Sending state change events 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Passing UIDL to Vaadin 6 style connectors 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Performing server to client RPC calls 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Unregistered 0 connectors 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: handleUIDLMessage: 34 ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Starting layout phase 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Measured 0 non connector elements 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: No more changes in pass 1 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Total layout phase time: 5ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Processing time was 65ms for 438 characters of JSON 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Referenced paintables: 294 89557B2BBE9960A0183163C747A77433.cache.js:22032



The server side will send the order to get the focus on the next field and change some styles concernig the field and its label


Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.communication.AtmospherePushConnection
INFO: Received push message: for(;;);[{“syncId”: 11, “changes” : [[“change”,{“pid”:“258”},[“14”,{“id”:“258”}]
],[“change”,{“pid”:“261”},[“14”,{“id”:“261”}]
]], “state”:{“258”:{“styles”:[“visit”]
},“261”:{“styles”:[“focused”]
}}, “types”:{“258”:“14”,“261”:“14”,“263”:“17”}, “hierarchy”:{“258”:,“261”:
,“263”:}, “rpc” : [[“263”,“org.kopi.vaadin.addons.client.field.TextFieldClientRpc”,“setFocus”,[true]
]], “meta” : {“async”:true}, “resources” : {}, “timings”:[999, 2]
}] 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: JSON parsing took 0ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling message from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling resources from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling type inheritance map from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling type mappings from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling resource dependencies 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling meta information 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Creating connectors (if needed) 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Updating connector states 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling locales 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Updating connector hierarchy 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Running @DelegateToWidget 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Sending state change events 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Passing UIDL to Vaadin 6 style connectors 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Performing server to client RPC calls 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.communication.RpcManager
INFO: Server to client RPC call: 263:org.kopi.vaadin.addons.client.field.TextFieldClientRpc.setFocus([true]
) 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Unregistered 0 connectors 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: handleUIDLMessage: 17 ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Starting layout phase 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Measured 0 non connector elements 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: No more changes in pass 1 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Total layout phase time: 4ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Processing time was 34ms for 429 characters of JSON 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Referenced paintables: 294 89557B2BBE9960A0183163C747A77433.cache.js:22032



Now, activate the buttons on the formulat again.


Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.communication.AtmospherePushConnection
INFO: Received push message: for(;;);[{“syncId”: 12, “changes” :
, “state”:{“244”:{“enabled”:true},“245”:{“enabled”:true},“246”:{“enabled”:true},“247”:{“enabled”:true},“248”:{“enabled”:true},“249”:{“enabled”:true},“250”:{“enabled”:true}}, “types”:{“244”:“16”,“245”:“16”,“246”:“16”,“247”:“16”,“248”:“16”,“249”:“16”,“250”:“16”,“255”:“22”}, “hierarchy”:{“244”:,“245”:
,“246”:,“247”:
,“248”:,“249”:
,“250”:,“255”:[“256”]
}, “rpc” : , “meta” : {“async”:true}, “resources” : {}, “timings”:[999, 2]
}] 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: JSON parsing took 0ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling message from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling resources from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling type inheritance map from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling type mappings from server 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Handling resource dependencies 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling meta information 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Creating connectors (if needed) 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Updating connector states 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Handling locales 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Updating connector hierarchy 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Running @DelegateToWidget 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Sending state change events 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Passing UIDL to Vaadin 6 style connectors 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Performing server to client RPC calls 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: * Unregistered 0 connectors 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: handleUIDLMessage: 16 ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Starting layout phase 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Measured 0 non connector elements 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: No more changes in pass 1 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.LayoutManager
INFO: Total layout phase time: 5ms 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Processing time was 29ms for 468 characters of JSON 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:45 GMT+100 2016 com.vaadin.client.ApplicationConnection
INFO: Referenced paintables: 294 89557B2BBE9960A0183163C747A77433.cache.js:22032
Thu Feb 04 11:37:48 GMT+100 2016 com.vaadin.client.ApplicationConnection

We tried to use an automatic push on the hole process but we optained very poor performances so we switched to manual push in order to control when to send modifications to client side.

I hope I was clear in my explanations so that you can help me to figure out my problems.

Best regards