Looking into Chrome Developer Tools' Audits tab when launching my Vaadin-based web application, I have been horrified to see that the cache.html file was > 4Mb big! I thought that Vaadin's runtime was at worst a few hundred k's. I need to enable gzip compression, but still... how is it even possible that such a huge file is meant to be sent to the browser?
4MB is too big. Make sure you are not using GWT's "draft compilation" as it makes the resulting widgetset huge.
The right size is around 400-600kB (uncompressed). The size depends on what widgets are included in the set. Adding new widgets makes it a little bigger while leaving out some unused widgets makes it smaller. Realistic minimum size is between 200-300kB.
Most important is that you have enabled the gzip encoding on you HTTP server. That way only 80kB to 200kB is actually transferred to the browser.
See also: http://vaadin.com/forum/-/message_boards/message/163146