I’ve read an answer 2 years ago about UiBinder performance https://stackoverflow.com/a/3755675/1067931
And decided to put it to a test.
I built a really complicated layout with many buttons, and panels one inside another.
version 1 had the layout built purely in UiBinder xml, while version 2 purely programatically.
I deployed both versions to App Engine and ran both versions, while clearing browser cache before each run. Version 1 (UiBinder) loaded after ~12 seconds, while Version 2 after ~3 seconds, so it really discouraged me from using UiBinder. Did you have different impressions?
It seems intuitively right to me, that UiBinder-Code can lead to longer start-up times. here is why:
Imagine you are trying to define 20 Buttons in your view. In your declarative layout you would declare each button explicitly, while in your imperative layout you would most likely use a for-loop. It seems likely that this would lead to smaller JS size for the imperative layout.
Also consider that in real world applications, this difference might be negligible, as views usually are the smallest part of a project.
The documentation of UiBinder seems to suggest, that it is more about runtime performance, so if you are interested in decreasing load time I suggest you take a look at
Code Splitting,
HTML5 Appcache
and general performance tips (though a bit outdated, still very useful!)
Thanks for the question, I searched for an extensive performance test suite for GWT features ( like UiBinder ) but came up empty.