首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GWT Requestfactory性能建议

GWT Requestfactory性能建议
EN

Stack Overflow用户
提问于 2012-10-19 15:50:11
回答 1查看 794关注 0票数 9

我在使用GWT请求工厂时观察到了非常糟糕的性能。例如,一个需要我的服务层2秒才能完成的请求要花20秒来序列化GWT。我的服务是返回~100,将是EntityProxies。每个对象都将成为4 ValueProxies和2 EntityProxies (100个根级EntityProxies、400个ValueProxies和200个额外的EntityProxies)。但是,我在小得多的数据集中看到了同样的10倍性能下降。

日志片段示例:

代码语言:javascript
复制
D 2012-10-18 22:42:39.546 ServiceLayerDecorator invoke: Inoking service layer took 2265 ms
D 2012-10-18 22:42:58.957 RequestFactoryServlet doPost: Entire request took 22870 ms

我在ServiceLayerDecorator#invoke方法中添加了一些分析代码,并将整个servlet封装在一个计时器中。我已经描述了服务本身,它确实是返回的结果~2。

我正在使用GWT 2.4,但已经在GWT 2.5rc1和GWT2.5rc2上测试了这一点。我的后端是在GAE,但我认为这不是在这里发挥作用。

我发现这只虫子针对2.4提交了文件,这似乎是非常相关的。我已经手动应用了这个谷歌集团的修补程序,没有任何运气。

我的域模型看起来如下:

代码语言:javascript
复制
class Trip {
  protected Address origin; // becomes ValueProxy
  protected Address destination; becomes ValueProxy
  protected Set<TripPassenger> tripPassengers; // Set of ValueProxies
}

class TripPassenger {
  protected Passenger passenger;
}

class Passenger {
  protected Account account;
}

我的问题是:

  • 我是否正确地剖析了代码并将问题隔离到GWT序列化中?
  • 我是不是做错了什么会导致这种行为的事?
  • 如何更好地分析GWT序列化代码以尝试找出原因?
EN

回答 1

Stack Overflow用户

发布于 2012-10-22 10:14:23

  • 我是否正确地剖析了代码并将问题隔离到GWT序列化中?

RequestFactory大量使用反射(例如,比GWT多得多),所以在某些情况下它会引起一些perf问题,我并不感到惊讶。GAE可以在这里扮演一个角色。

我相信RequestFactory (实际上是AutoBean部分)可以从构建时的代码生成中获益良多。

  • 我是不是做错了什么会导致这种行为的事?

检查定位器的find和/或isLive方法。

  • 如何更好地分析GWT序列化代码以尝试找出原因?

她还想知道用于反序列化请求、应用更改、然后序列化响应所花费的时间。不要忘记从这些时间中减去在findisLive中花费的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12977922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档