Is there any overhead of Vaadin, when used for general purpose web-app?

Is there any significant overhead of using Vaadin for general purpose web application?
What I mean is there is no control over no of users. and I am not having a huge server with 8 or 12 GB RAM. I have 1 GB RAM and Core 2 Processor.

As per my understanding there will be overhead, because UI is generated at server, and kept in session, In contrast to GWT where UI is generated at client end and kept in client only, server only provide services. so the Question is how much overhead?

I can run few stress tests, and figure out by myself. But I think, Vaadin guys must have done this. So anyone have any experience/knowledge about overhead, Please share. :slight_smile:


Server-side RIA requires more memory than client-side RIA. The main difference is that the UI state lives in the HttpSession. The size of the session depends on your application UI and can be anything from tens of kilobytes to hundreds of kilobytes. For example if your applications memory footprint is 100k, upper limit for active concurrent sessions in your server is 10.000. You might be able to go above limit if you let application server to serialize the most inactive sessions to disk. Also note that there could also be some other bottlenecks depending on your application.

Thanks for sharing the information Joonas.

Can you please elaborate. If we take example of Sampler application. What kind of bottlenecks you are talking about?

Can I reuse static views like header, which has no states.

Short answer to this: by nature everything is cached at the client side. Server only processes the changes on application UI. So, if your header component does not change there is no processing at the server and also no data is transferred for those parts of the UI.

Nice… got it.

But If you already know component are static only, you can use same objects. and save some server RAM. I think it should work. right?

This probably won’t work, since each component has a parent. When the component is added to a layout, the layout is set as the component’s parent. If you now try to add the component to another layout, an exception will be thrown, as a component is only allowed to be attached to one component container at a time. This means that you cannot attach your header to multiple applications, since the parent would be different for each application.

Hmm… You are right.
Like Swing, Vaadin components are inherently stateful.

so there cannot be a stateless component, hence We cannot use reuse a component (object) . :slight_smile:


Most probable bottlenecks are unnecessarily slow data model or business logic. As Sampler does not have any data model, there are probably no such bottlenecks in Sampler.