Производительность коллекций GWT и рекомендуемые практики - PullRequest
4 голосов
/ 28 января 2011

Каков наилучший способ и / или рекомендуемые методы работы с коллекциями в GWT, особенно если вы ищете производительность?

Опции, которые я нашел до сих пор:

  • Эмулируемые коллекции JRE.Наиболее естественный путь для разработчика Java, но, по словам команды GWT, «не идеальное соответствие ограничениям работы внутри браузеров, особенно мобильных браузеров».Сравнение производительности можно найти здесь и здесь

  • GWT Облегченные коллекции .Среди других улучшений они обещали принести минимальный размер скомпилированного скрипта и абсолютную максимальную скорость.Однако в течение 7 месяцев новостей об этом проекте нет.

  • Библиотеки гуавы Безопасно ли использовать гуаву в GWT?Если да, приносит ли это реальное улучшение производительности?

Любые другие альтернативы?

Большое спасибо

Ответы [ 2 ]

5 голосов
/ 28 января 2011

Если вы ищете абсолютно оптимальную производительность в браузере, вам следует использовать что-то вроде облегченных коллекций - только собственные массивы и карты JS и все содержащиеся объекты как JavaScriptObjects (типы наложения).

Однакоэто серьезно ограничит вашу эффективность кодирования, так как они не так просты в использовании, как коллекции JRE.Здесь нет contains(), нет улучшенных циклов, нет тонкостей Java.И, в конце концов, «тонкости Java», по-видимому, и являются причиной того, что вы программируете на GWT, а не на JS.

Guava не ставит своей целью привнести какие-либо особые преимущества в эффективность приложения GWT, в основном он просто обеспечиваетболее простой опыт программирования, а иногда и небольшая оптимизация, которую вы, возможно, не рассматривали.Guava не оптимизирован для GWT, он просто доступен на GWT.

Так что решать вам.Если вы хотите иметь удобство использования обычных коллекций Java, вы должны использовать Guava.Если вы хотите максимально быстрой производительности, делайте все в собственных коллекциях.

3 голосов
/ 28 января 2011

Согласен с предыдущим ответом и предоставил некоторые дополнительные детали:

GWT Легкие коллекции, предназначенные только для клиентской стороны. Если вы захотите перенести тех, кто использует механизм RPC, вы, скорее всего, закончите исключением.

Другой подход к ускорению JavaScript - использовать массивы вместо коллекций, где это возможно как для транспортировки, так и для обработки. Массивы ближе к своим аналогам JavaScript, и GWT не компилирует слишком много упаковочного кода для целей совместимости.

Не следует ожидать каких-либо преимуществ для производительности от Guava.

...