2011-05-24 36 views
0

即时通讯使用rpc使用事件源,我需要将大量数据推送到客户端,测量性能并将信息发送回服务器端以根据所测量的信息来调整(事件源rpc的)延迟时间。 如何衡量客户端的性能。 如何在客户端创建缓冲区,以便在客户端可以平滑地显示数据(例如图(x,y)(x1,y1)中的数组值),并将一些数据保存在其缓冲区中。GWT:如何测量客户端性能和发送到服务器的信息,以便在客户端正确显示hudge数据时动态地显示

回答

0

你基本上做的是测量渲染接收到的数据显示的网络延迟和延迟。所以基本上你在这里有两个变量,你必须测量它们中的每一个。这是我会做的:

  1. 客户端请求数据。
  2. 服务器回复数据并向其添加服务器时间戳。
  3. 当客户端完成接收数据时,它会创建它自己的客户端时间戳new Date().getTime()
  4. 比客户端开始渲染接收到的数据到屏幕上。
  5. 完成后,它会创建一个新的时间戳并减去以前的客户端时间戳:它将获取呈现时间。
  6. 立即向服务器发送另一个请求(不是正常的数据请求,而是特殊的只测量请求),并向其添加呈现时间和服务器时间戳。服务器获取数据:以前的服务器时间戳和客户端呈现延迟。

现在它可以计算网络延迟(当前服务器时间戳 - 启动服务器时间戳 - 渲染延迟)/ 2。

您正在寻找的调整延迟是网络延迟+渲染延迟。

+0

感谢您的回复,我不确定你在说什么,因为我使用事件源rpc插件从服务器端推送数据,例如一段时间后。 200毫秒,所以客户端请求不存在,我也需要在客户端的缓冲区,因为服务器发送大量数据(200毫秒是非常快),并显示客户端图中的数据,我需要在客户端顺利显示这就是为什么我需要在cleint端的缓冲区来保存数据并以FIFO的方式显示在图中并顺利执行... – 2011-05-30 13:25:14

0

我想你正在开发阶段优化你的代码。在这种情况下,您应该使用浏览器工具来测量RPC调用,HTML解析和CSS渲染,如Speed Tracer

如果您的问题根据生产系统中加载的数据而随机出现,那么您必须手动测试JavaScript代码,或者感谢gwt-measure工具包或dynatrace AJAX

相关问题