【问题标题】:GWT collections performance and recommended practicesGWT 集合性能和推荐实践
【发布时间】:2011-01-27 22:36:10
【问题描述】:

在 GWT 中使用集合的最佳方式和/或推荐做法是什么,特别是在寻找性能时?

目前我发现的选项是:

  • JRE 模拟集合。最多 Java 开发人员的自然方式,但是, 用 GWT 团队的话来说“不是一个理想的匹配 对于在里面跑的限制 浏览器,尤其是移动设备 浏览器”。性能比较 可以找到herehere

  • GWT Lightweight Collections。 在其他改进之间,他们 承诺带来的最小尺寸 编译脚本和绝对最大值 速度。然而没有消息 关于这个项目 7 个月。

  • Guava Libraries 安全吗 在 GWT 中使用番石榴?如果是这样,是否 带来真正的性能提升?

还有其他选择吗?

非常感谢

【问题讨论】:

  • 感谢您的链接。我还将使用指向该线程的链接更新帖子!

标签: gwt collections guava


【解决方案1】:

如果您正在寻找浏览器的绝对最佳性能,您应该使用轻量级集合之类的东西——仅原生 JS 数组和映射,并且所有包含的对象都作为 JavaScriptObjects(覆盖类型)。

但是,这将严重限制您的编码效率,因为它们根本不像 JRE 集合那样易于使用。没有contains(),没有增强的for循环,没有Java的精妙之处。毕竟,“Java 的精妙之处”大概是您使用 GWT 而不是 JS 编程的原因。

Guava 并不旨在为 GWT 应用程序带来任何特定的效率优势,它主要只是提供更简单的编码体验,偶尔还会在各处进行一些您可能没有考虑过的微小优化。 Guava 没有针对 GWT 进行优化,它仅在 GWT 上可用。

所以,这取决于你。如果你想方便地使用常规的 Java 集合,你应该使用 Guava。如果您想要绝对最快的性能,请在本机集合中执行所有操作。

【讨论】:

    【解决方案2】:

    同意之前的回答并提供一些额外的细节:

    GWT 轻量级集合仅用于客户端。如果您想使用 RPC 机制传输那些,您可能会以异常结束。

    另一种加快 JavaScript 速度的方法是使用数组而不是集合,这样可以同时进行传输和处理。数组更接近于它的 JavaScript 类似物,并且 GWT 不会出于兼容性目的编译过多的包装代码。

    预计 Guava 也不会有任何性能优势。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 2011-04-23
      相关资源
      最近更新 更多