【发布时间】:2011-06-11 04:17:35
【问题描述】:
GWT RPC 调用和 IE6 存在问题(是的!)。问题是有时客户端-服务器通信太慢(大约需要 15 秒)。通常它发生在 IE 上的现金清除并第一次调用 RPC 之后(与服务器的其他迭代非常快)。由于我们已将其嵌入到另一个程序中,因此每次关闭窗口时都会清除现金。所以,这样的“延迟”是相当烦人的。使用 Firefox 甚至 IE 8 都可以。服务器端真的很简单,不需要太多时间。
为了调查它,我安装了 LightweightMetrics 工具并获得了以下信息:
<event event="rpc0" time="12636ms" start="16:31:38.800" end="16:31:51.436" module="app" service___response="Service.getDisplay">
<event event="requestSerialized" time="1ms" start="16:31:38.800" end="16:31:38.801" module="app" service___response=""/>
<event event="requestSent" time="1ms" start="16:31:38.801" end="16:31:38.802" module="app" service___response=""/>
<event event="responseReceived" time="12420ms" start="16:31:38.802" end="16:31:51.222" module="app" service___response=""/>
<event event="responseDeserialized" time="0ms" start="16:31:51.222" end="16:31:51.222" module="app" service___response=""/>
<event event="callback" time="214ms" start="16:31:51.222" end="16:31:51.436" module="app" service___response=""/>
</event>
如您所见,最耗时的事件是 responseReceived 事件。从应用程序日志中,我可以看到在 16:31:51.000 调用了服务器端代码。这意味着服务请求和发回响应大约需要 222 毫秒。 (这张图也很有帮助http://google-web-toolkit.googlecode.com/svn/wiki/LightweightMetricsDesign-rpc.png)。
基于上述我可以假设,该请求“走”某处大约 12.5 秒。我的问题是——它在哪里行走以及如何加快整个过程?
顺便说一句:客户端和服务器都部署在本地主机上。如果使用gwt.HTML + servlets,那么似乎没有这个问题。
【问题讨论】:
标签: performance gwt gwt-rpc