我正在评估使用GWT-RPC和HTTP Call进行的调用之间是否存在性能差异。
我的appln服务被托管为Java servlets,我目前正在使用HTTPProxy连接从它们获取数据。我希望将它们转换为GWT-RPC调用,如果这会带来性能改进的话。
我想知道每种方法的优缺点。
另外,任何关于测量异步调用性能的工具的建议...
[可以与GWT一起使用的A good article on various Server communication strategies。]
发布于 2010-06-04 19:53:05
我写了问题中提到的那篇文章(感谢你的链接!)
一如既往,答案是‘视情况而定’。我使用过GWT-RPC和JSON。
如上所述,GWT-RPC允许通过网络传输java对象(有一些限制)的一些重要的生产力。有些逻辑可以共享,GWT负责编组/解组您的对象。
JSON允许其他非GWT客户端跨域访问和使用。您可以使用覆盖类型,但不能共享任何行为(如验证)。JSON也可以很容易地压缩和缓存,这与GWT-RPC (我上次看过)不同。
因为我们不知道有效负载是什么,所以很难给出性能建议。我建议(再一次,就像上面有人做的那样)测试你自己。
发布于 2010-06-02 13:31:46
当后端也是用Java编写的时候,GWT-RPC通常是首选的,因为它意味着不必在每一端对对象进行编码和解码--您只需将常规的Java对象传输到客户机,并在那里使用它。
JSON (使用RequestBuilder)通常在后端使用其他语言编写时使用,它要求服务器对响应对象进行JSON编码,并要求客户端将其JSON解码为JavaScriptObject,以便在GWT代码中使用。
如果要我猜的话,我会说GWT-RPC也会产生更小的传输对象,因为GWT团队针对这种情况进行了优化,但这两种方法都可以工作,而且JSON仍然可以非常小。在大多数情况下,这只是出于开发人员便利性的考虑。
至于测量请求时间的工具,您可以使用Chrome/Webkit的开发人员工具或Firefox的Firebug扩展,或者在您的应用程序中测量请求时间,并将这些指标数据以延迟请求的形式发送回您的服务器,以进行收集和分析。
发布于 2010-06-03 06:02:04
只是对其他答案的补充,有一点需要考虑,这可能会影响您对JSON的决定,即使您在后端使用Java:
也许在将来的某个时候,您希望允许非GWT客户机与您的服务器通信。许多现代站点都提供了某种类型的API访问,如果您使用的是JSON,那么您基本上已经有了一个相对开放的API。
https://stackoverflow.com/questions/2955071
复制相似问题