Шпаргалка по оптимизации GWT

Пост из разряда для себя на заметку. Просмотрев видео с Google I/O 2010 нашел массу интересных идей.
Простые приемы оптимизации в GWT:
  1. Отключение вывода трассы стека для исключений — позволяет GWT-компилятору увеличить количество безымянных методов.
    Для отключения вывода трассы стека в GWT дескрипторе, следует установить следующую переменную:
    <set-property name="compiler.stackMode" value="strip"/>
  2. Удаление метаданных о классе — позволяет сэкономить на объеме скомпилированного объявления типа. Для его активации необходимо запустить GWT-компилятор с параметром:
    -XdisableClassMetadata
  3. Отключение проверки соответствия типов при приведении — эффект очевиден экономия времени за счет отсутствия выполнения одной лишней операции. Включается так же через параметры компилятора:
    -XdisableCastChecking
  4. Обфускация CSS ресурсов. При использовании UiBinder и CssResource, GWT умеет сокращать объем данных, описывающих каскадные стили, активировать такую фитчу можно через переменную дескриптора:
    <set-configuration-property name="CssResource.obfuscationPrefix" value="empty"/>
  5. Если о предыдущих оптимизациях я знал, то следующая стала для меня откровением.
  6. Обфускация типов в GWT RPC. По-умолчанию GWT RPC содержат полную информацию о передаваемых типах, например:
    //OK[0.0,1.0,6,5,4,3,1,2,1,["com.sokolenko.jcrconsole.shared.protocol.GetNodesResult/3275626503","java.util.ArrayList/3821976829","com.sokolenko.jcrconsole.shared.protocol.NodeInfo/3439158146","","/","rep:root"],0,5]
    Немалый объем информации передается просто так, его можно исключить, подключив к GWT дескриптору модуль RemoteServiceObfuscationTypeNames:
    <inherits name="com.google.gwt.user.RemoteServiceObfuscateTypeNames"/>
  7. Отложенная загрузка GWT приложения. GWT приложение совершенно не обязательно должно грузиться одним большим "жирным" куском, его загрузку вполне можно разделить на несколько частей. Правда появилась эта полезная фитча только в версии 2.0 (как в прочем и большинство описанных выше оптимизаций).
    По-сути для отложенной загрузки частей приложения их вызов необходимо завернуть в RunAsyncCallback:

    Кроме того поддерживается фоновая загрузка, подробнее в Документации для разработчиков.
    Отличным механизмом для выявления узких мест в процессе загрузки GWT-приложения являются отчеты компилятора, которые составляются, если поледний был запущен с параметрами:
    -compileReport -XsoycDetailed

Все описанные отпимизации безусловно применимы для продакшен версии приложения. На стадии разработки они скорее вредят, чем помогают.
P.S. Собственно первоисточники